一、文件的所有者和所有组
在linux中的每个用户必须属于一个组,不能独立于组外。每个文件有所有者、所属组、其它组的概念。
所有者(user):一般为文件的创建者,谁创建了该文件,自然成为该文件的所有者,也可以使用chown来修改文件的所有者。
所属组(group):当某个用户创建了一个文件后,这个文件的所属组就是该用户所属的组,也可以使用chgrp来修改文件所属的组。
上图红框中的第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命令后面加-R参数,表示级联更改,该目录下面的文件权限改成跟该目录一样的权限。
chmod还支持使用rwx的方式来设置权限,用u、g、o分别代表user、group、others的属性,用a代表所有(u、g、o),比如:
我们还可以针对u、g、o和a,增加和减少他们的摸个权限,比如:
三、chown命令
改变文件或目录的所有者或所属组。一般使用格式为:
chown [-R] 用户名 文件名
chown [-R] 用户名:用户组 文件名
-R选项只适用于目录,做级联更改,即该目录包含该目录下的其他目录和文件也全部更改。
以下为示例:
1、更改文件所有者:
2、同时更改所有者和所属组:
3、只更改所属组:
四、umak命令
umask命令用于改变文件的默认权限,格式为:umask xxx(三位数)。如果要查看umask的值,在命令行输入umask即可:
umask
0022
创建的目录默认权限是755:
创建文件的默认权限为644:
用户创建目录,则预设所有权限全开放,即权限为777。
用户创建文件,则预设没有可执行权限,即最大权限为666。
因为usmask默认是0022 ,所以777-022=755(目录权限),666-022=644(文件权限)。
如果把umask设置为0002,创建的目录权限便是775,文件默认权限是664。
注意:目录须有X权限,否则无法打开。
五、lsattr,chattr命令,修改文件的特殊属性
chattr命令:改变文件或目录的隐藏属性。格式:chattr [+-=] [选项] [文件或目录名]。
常用选项为:
a:文件只能添加内容,不能修改、移动、删除,常用于日志文件。
i :文件不能修改、移动、删除,即使root也不行,用于固定不变的文件。
1、加上i参数:写入,删除不可操作。
2、加上a参数:无法删除,但可追加新内容。
如果需要删除i,a权限,使用chattr -i 、chattr -a或chattr -ia即可。
lsattr命令:查看文件或目录的隐藏属性。
-R参数,来南通子目录的数据一同列出。
-a参数,类似ls的-a参数,即连同隐藏文件一起显示。
来源:51CTO
作者:BatmanLinux
链接:https://blog.51cto.com/3069201/2052590