一、文件的所有者和所有组

在linux中的每个用户必须属于一个组,不能独立于组外。每个文件有所有者、所属组、其它组的概念。

所有者(user):一般为文件的创建者,谁创建了该文件,自然成为该文件的所有者,也可以使用chown来修改文件的所有者。
所属组(group):当某个用户创建了一个文件后,这个文件的所属组就是该用户所属的组,也可以使用chgrp来修改文件所属的组。

文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
上图红框中的第3列就是文件的所有者,第4列就是文件的所属组
重要:上图的中第一列,一共11位,包含该文件的类型、所有者、所属组以及其他用户对该文件的权限。第1位表示文件类型。后面9位(后面第10位.表示使用了SELinux属性,知道即可),每3位为一组,均为rwx这三个参数的组合,前3位为所有者的权限,中间3位为所属组的权限,后3位为其他不在该组的用户权限。

r:可读权限
w:可写权限
x:可执行权限


二、chmod命令

chmod(change mode),用于改变用户对文件/目录的读写执行权限。为了方便更改文件权限,Linux使用数字代替rwx,具体规则为:

r=4,w=2,x=1,比如rwxrw-r--用数字表示就是764,算法:rwx=4+2+1=7,rw-=4+2+0=6,r--=4+0+=4。

在Linux中一个文件夹的默认权限是755,一个文件的默认权限是644,看下面例子:
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
在chmod命令后面加-R参数,表示级联更改,该目录下面的文件权限改成跟该目录一样的权限。
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
chmod还支持使用rwx的方式来设置权限,用u、g、o分别代表user、group、others的属性,用a代表所有(u、g、o),比如:
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
我们还可以针对u、g、o和a,增加和减少他们的摸个权限,比如:
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令


三、chown命令

改变文件或目录的所有者或所属组。一般使用格式为:

chown [-R] 用户名 文件名
chown [-R] 用户名:用户组 文件名
-R选项只适用于目录,做级联更改,即该目录包含该目录下的其他目录和文件也全部更改。

以下为示例:
1、更改文件所有者:

文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
2、同时更改所有者和所属组:
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
3、只更改所属组:
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令


四、umak命令

umask命令用于改变文件的默认权限,格式为:umask xxx(三位数)。如果要查看umask的值,在命令行输入umask即可:

umask

   0022

创建的目录默认权限是755:
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
创建文件的默认权限为644:
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令

用户创建目录,则预设所有权限全开放,即权限为777。
用户创建文件,则预设没有可执行权限,即最大权限为666。

因为usmask默认是0022 ,所以777-022=755(目录权限),666-022=644(文件权限)。

如果把umask设置为0002,创建的目录权限便是775,文件默认权限是664。
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
注意:目录须有X权限,否则无法打开。


五、lsattr,chattr命令,修改文件的特殊属性

chattr命令:改变文件或目录的隐藏属性。格式:chattr [+-=] [选项] [文件或目录名]。
常用选项为:

a:文件只能添加内容,不能修改、移动、删除,常用于日志文件。
i :文件不能修改、移动、删除,即使root也不行,用于固定不变的文件。

1、加上i参数:写入,删除不可操作。
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
2、加上a参数:无法删除,但可追加新内容。
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令
如果需要删除i,a权限,使用chattr -i 、chattr -a或chattr -ia即可。
lsattr命令:查看文件或目录的隐藏属性。
文件的所有者和所属组,chmod,chown命令用法,命令umask和lsattr,chattr命令

-R参数,来南通子目录的数据一同列出。
-a参数,类似ls的-a参数,即连同隐藏文件一起显示。