命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr
文件或目录权限chmod
Linux文件属性
当我们用ls -l命令查看当前目录下的文件时,共显示了9列内容(用空格划分列)。如图
第一列 包含文件的类型,所有者,所属组以及其他用户对该文件的权限。
其中第1位用来描述该文件的类型。我们看到这里的文件类型是l,其实除了这个还有,b,c,s,d,-等等。
- d 代表该文件是目录
- -代表该文件是普通文件
- l 代表该文件是链接文件
- b 代表该文件是快设备,比如/dev/sda就是这样的文件,磁盘分区文件就是这种类型。
- c 代表该文件是串行端口设备文件(又称字符设备文件),比如键盘,鼠标,打印机,tty终端等都是这样的文件。
- s 代表该文件为套接字文件(socket),用于进程之间的通信。
文件类型后面的9位,每3位为一组,其中r代表可读,w代表可写,x代表可执行。其中r等于4,w等于2,x等于1。前3位为所有者(user)的权限,中间3位为所属组(group)的权限,最后3位为其他用户(others)的权限。
第二列 表示该文件占用的字节(inode),如果是目录,那这个数值与该目录下是子目录数量有关。
第三列 表示该文件的所有者
第四列 表示该文件的所属组
第五列 表示该文件的大小。
第六列,第七列,第八列 表示该文件最后一次被修改的时间,依次为月份,日期以及时间。
第九列 表示文件名。
命令chmod
1.命令语法
chmod [-R] xyz文件名(这里的xyz表示数字)。
2.命令描述
命令chmod(change mode)用于改变用户对文件/目录的读写执行权限。
3.命令参数
-R 选项的作用等同于chown命令的-R选项,也表示级联更改。
**注意:在Linux系统中,一个目录的默认权限为755,而一个文件的默认权限为644。 **
命令示例:
**1. 修改DL的权限,该为777。 **
在这里我们看到,虽然修改了DL的权限,但是DL下的1.txt的权限并没有改变。
2.如果想把目录下的子文件子目录全部批量的修改权限,可以加一个-R选项。
例如 使用-R选项,把DL权限修改为770。
可以看出,在使用-R的选项的情况下,把DL的权限修改为770,其子目录及子文件都跟随DL的权限修改为了770。
3.使用字母的形式改变DL的权限为747。
这里的u代表user,g代表group,o代表other。
4.使用一条命令,DL的把所有者,所属组,以及其他用户,都减去X权限。
其中,a代表all(全部),a-x,代表把所有者,所属组,其他用户,的x权限去除。
当然a+x的意思是把所有者,所属组,其他用户,加上x权限。当然也可以u-x,u+x,(只针对所有者)。
更改所有者所属组chown
命令chown
1.命令语法
chown [-R]账户名 文件名 或者 chown [-R] 账户名:组名 文件名
2.命令描述
命令chown可以更改文件的所有者
3.命令选项
-R 选项只适用目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改。
图片用到一个useradd命令,其作用是增加一个用户组。
在这里我们看到,在不用-R选项的情况下,更改dir的所有者,它的目录下的test1的所有者并没有改变。
然后使用-R选项更改dir的所有者后,其目录下的test1也跟随dir的所用者一同改变。
命令chgrp
1.命令语法
chgrp [组名][文件名]
2.命令描述
命令chgrp可以更改文件的所属组
图片中用到了一个groupadd命令,其作用是增加一个所属组。
3.命令选项
-R 选项只适用目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改。作用同chown的-R
小知识:在我们使用chown的时候,可以连同,所属组,一起更改。中间用:分割。如下图
命令umask
默认情况下,目录的权限值为755,普通文件的权限值为644。
1.命令语法
umask xxx(这里的xxx代表3个数字)。
2.命令描述
命令umask用于改变文件的默认权限。
如果要查看umask的值,只要在命令行输入umask,然后回车即可。
这里umask的预设值为0022,规则:
若用户建立普通文件,则预设没有可执行权限,只有r,w两个权限,最大值为666(-rw-rw-rw-)。 若用户建立目录,则预设所有权限均开放,即777(-rwxrwxrwx)。 umask计算法:
例如我们把umask的值改为003,那么它创建的普通文件(最大值666)的权限是什么呢?
普通文件的最大值-umask的值=将要创建的普通文件权限
(rw-rw-rw-)-(-------wx)=rw-rw-r--
可以看出是 666-003=664。
例如我们把umask的值改为003,那么它创建的目录(最大值777)的权限是什么呢?
目录文件的最大值-umask的值=将要创建的目录权限
(rwxrwxrwx)-(-------wx)=rwxrwxr--
可以看出777-003=774
注意在计算umask的时候不能用数字表示,只能用字母。
隐藏权限chattr—lsattr
修改文件的特殊属性
命令chattr
1.命令语法
chattr [+-=][Asaci][文件或目录名] ,其中+,-,=分别表示增加,减少和设定。
2.命令描述
命令chattr(chage attribute)改变属性的意思
3.命令选项
A 增加该属性后,表示文件或目录的atime将不可修改。
s 增加该属性后,会将数据同步写入磁盘中。
a 增加该属性后,表示只能追加不能删除,非root用户不能设定该属性。
c 增加该属性后,表示自动压缩该文件,读取时会自动解压。
i 增加该属性后,表示文件不能删除,重命名,设定链接,写入以及新增数据。
以上选项中,常用的为a,i这两个选项,举例说明用法如下:
选项 i
- 从图中可以看出。给dir目录增加i权限后,即使是root账户,也不能再dir目录中创建或删除test2文件。
选项 a
-
从图中可以看出。dir目录增加a权限后,只可以在里面创建文件,而不能删除文件。
-
从图中可以看出。dir/test1增加a权限后,只能追加内容,不能替换内容。增加i选项后,既不能追加,也不能替换。
命令lsattr
1.命令语法
lsattr [-aR] [文件/目录名]
2.命令描述
命令lsattr用于读取文件或者目录的特殊权限。
3.命令选项
-a 类似于ls的-a选项,即连同隐藏文件一同列出。
-R 连同子目录的数据一同列出。
转载于:https://my.oschina.net/991124/blog/1555358