我们知道,Linux中的文件的用户属性有一下三类:所有者(u)、所属组(g)、其他人(o),每一类都可以对应一组文件处理权限:读(r)、写(w)和执行(x)。因此, 可以通过权限管理命令来更改文件的用户属性以及对应的处理权限。
一、chmod命令:
命令名称:chmod
命令英文原意:change the permissions mode of a file
命令所在路径:/bin/chmod
执行权限:文件的所有者和root用户
语法:1、 chmod [{ugoa}{+-=}{rwx}] [文件或目录] 其中a表示所有用户,+:增加某个权限,-:减少某个权限,=:不管原来是什么权限,要改成新的权限(有点像赋值)
例:chmod -u+r,-o-w /home/aaa
2、chmod [mod=42] [文件或目录],其中,mod是权值,r=4,w=2,x=1,那么rwxrwr--,的权值应该为:764,那么例子应该为:chmod 764 aaa,这里也可以用二进制理解,rwxrw-r--对应的二进制为111110100,对应的权值也为764
3、chmod -R [权值] [目录] 修改目录下的所有目录及文件的权限
功能描述:改变文件或目录权限
二、文件和目录的权限说明:
代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
r | 读权限:cat\tac\less\more\tail | 可查看文件内容 | 可以列出目录的内容:ls |
w | 写权限:vim | 可以修改文件内容 | 可以在目录中创建、删除文件:mkdir\rmdir\rm\touch |
x | 执行权限:脚本或命令等可执行文件 | 可以执行文件 | 可以进入目录:cd |
从上表中可以看出,用户是否可以删除一个文件,不是该文件的写权限决定的,而是该文件所在的目录的写权限决定的,即删除一个文件的前提条件是对这个文件所在的目录有写权限。
三、其他权限管理命令
1、chown
命令名称:chown
命令英文原意:change file ownership
命令所在路径:/bin/chown
执行权限:所有用户都可以使用这个命令,但是只有管理员root用户可以成功修改
语法:chown [用户] [文件或目录]
功能描述:改变文件或目录的所有者
例子:chown user_login file.txt 将文件file.txt的所有者更改为user_login,并且user_login必须为一个系统中已经存在的用户(注:root用户使用useradd命令可以增加一名用户)
2、chgrp
命令名称:chgrp
命令英文原意:change file group ownership
命令所在路径:/bin/chgrp
执行权限:所有用户
语法:chgrp [用户组] [文件或目录]
功能描述:改变文件或目录的所属组
例子:chgrp users file.txt,将文件file.txt的所属组更改为users,并且users必须为一个系统中已经存在的用户组(注:root用户使用groupadd命令可以增加一个用户组)
3、umask
命令名称:umask
命令英文原意:the user file-creation mask
命令所在路径:shell内置命令
执行权限:所有用户
语法:umask [-S] -S以rwx形式显示新建文件的缺省权限
功能描述:显示、设置文件的缺省权限
例子:umask -S,对于目录来说,一般是rwxr-xr-x;对于文件来说,一般是rw-r--r--,这是因为x对于目录来说是进入这个目录,而文件默认的都是非可执行文件。
注意:1、不带S选项时,会出现数字0022,第一个0是指特殊权限,022,这个需要与文件权限的权值777进行逻辑异或操作,得到755,也就是rwxr-xr-x(如果是文件,那么默认都是没有可执行权限的)
2、如果需要将默认的缺省值改为711,那么就将711(rwx--x--x)与777做异或运算,得到066,那么执行的命令为:umask 066