命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr

文件或目录权限chmod

Linux文件属性

当我们用ls -l命令查看当前目录下的文件时,共显示了9列内容(用空格划分列)。如图
命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr
第一列 包含文件的类型,所有者,所属组以及其他用户对该文件的权限。
其中第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。 **
命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr
在这里我们看到,虽然修改了DL的权限,但是DL下的1.txt的权限并没有改变。

2.如果想把目录下的子文件子目录全部批量的修改权限,可以加一个-R选项。
例如 使用-R选项,把DL权限修改为770。
命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr
可以看出,在使用-R的选项的情况下,把DL的权限修改为770,其子目录及子文件都跟随DL的权限修改为了770。

3.使用字母的形式改变DL的权限为747。
命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr
这里的u代表user,g代表group,o代表other。

4.使用一条命令,DL的把所有者,所属组,以及其他用户,都减去X权限。
命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr
其中,a代表all(全部),a-x,代表把所有者,所属组,其他用户,的x权限去除。
当然a+x的意思是把所有者,所属组,其他用户,加上x权限。当然也可以u-x,u+x,(只针对所有者)。

更改所有者所属组chown

命令chown

1.命令语法
chown [-R]账户名 文件名 或者 chown [-R] 账户名:组名 文件名

2.命令描述
命令chown可以更改文件的所有者

3.命令选项
-R 选项只适用目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改。

命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr
图片用到一个useradd命令,其作用是增加一个用户组。
在这里我们看到,在不用-R选项的情况下,更改dir的所有者,它的目录下的test1的所有者并没有改变。
然后使用-R选项更改dir的所有者后,其目录下的test1也跟随dir的所用者一同改变。

命令chgrp

1.命令语法
chgrp [组名][文件名]

2.命令描述
命令chgrp可以更改文件的所属组
命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr
图片中用到了一个groupadd命令,其作用是增加一个所属组。

3.命令选项
-R 选项只适用目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改。作用同chown的-R

小知识:在我们使用chown的时候,可以连同,所属组,一起更改。中间用:分割。如下图

命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr

命令umask

默认情况下,目录的权限值为755,普通文件的权限值为644。

1.命令语法
umask xxx(这里的xxx代表3个数字)。

2.命令描述
命令umask用于改变文件的默认权限。
如果要查看umask的值,只要在命令行输入umask,然后回车即可。
命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr
这里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文件。
    命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr

选项 a

  • 从图中可以看出。dir目录增加a权限后,只可以在里面创建文件,而不能删除文件。
    命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr

  • 从图中可以看出。dir/test1增加a权限后,只能追加内容,不能替换内容。增加i选项后,既不能追加,也不能替换。
    命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr

命令lsattr

1.命令语法
lsattr [-aR] [文件/目录名]

2.命令描述
命令lsattr用于读取文件或者目录的特殊权限。

3.命令选项
-a 类似于ls的-a选项,即连同隐藏文件一同列出。
-R 连同子目录的数据一同列出。
命令umask,文件或目录权限chmod,更改所有者所属组chown,隐藏权限chattr—lsattr

转载于:https://my.oschina.net/991124/blog/1555358