1.命令作用
将每个FILE的读写执行权限修改为指定的MODE表达的权限(Change the mode of each FILE to MODE.);或者使用--reference,将每个FILE的读写执行权限更改为RFILE的读写执行权限(With --reference, change the mode of each FILE to that of RFILE.)
2.命令语法
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
or: chmod [OPTION]... OCTAL-MODE FILE...
or: chmod [OPTION]... --reference=RFILE FILE...
3.参数详解
OPTION:
- -c, --changes,类似--verbose,但只有用户属性变化时才有信息输出
- -f, --silent, --quiet,抑制大多数错误信息
- -v, --verbose,修改读写执行权限时,输出具体的变更信息
- --no-preserve-root,不特别对待根目录'/'(默认值)
- --preserve-root,对'根目录/'递归操作失败
- --reference=RFILE,使用RFILE的读写权限而不是MODE指定的读写执行权限值
- -R, --recursive,递归地更改文件和目录
- --help,打印帮助信息并退出
- --version,打印版本信息并退出
MODE的形式:'[ugoa]*([-+=]([rwxXst]*|[ugo]))+ | [-+=][0-7]+'
- 黄色背景竖线(|)将其分为两种书写格式:前面是字母格式,后面是数字格式
- 黄色背景星号(*)代表星号前中括号的内容匹配0次或多次,如u+x、ug+x、ug+rwx三种
- 黄色背景加号(+)代表效果好里面的内容匹配1次或多次,如u+x,g+w一种(多个逗号分隔)
- [ugoa],主体范围
- u,文件所有者(user)
- g,文件所属用户组(group)
- o,其他用户(others)
- a,所有用户(all,默认值)
- [-+=],操作符
- -,移除权限
- +,添加权限
- =,强制覆盖原有权限
- [rwxXst]*,权限类型
- r,读权限(4,可用[0-7]中的4表示)
- w,写权限(2,可用[0-7]中的2表示)
- x,执行权限(1,可用[0-7]中的1表示)
- X,仅当目录为目录或已有执行权限时赋予x
- s,设置SUID/SGID(用户/组继承文件属主权限)
- t,粘滞位(限制目录内文件删除权限)
- [-+=][0-7],权限数字表示,ll查看目录文件会显示"-rwxrw-r--"部分为读写执行权限的显示
- [0-7],r=4,w=2,x=1,总和为7,第一位代表文件类型,后九位代表用户/组/其他权限,后九位的-代表无,则使用数字表示为764
- [-+=],-,在原有权限里面减去指定的数值,如755权限-111后的权限是644;+,在原有权限里面加上指定的数值,如444权限+311后的权限是755;=,强制覆盖,默认值可省略
- -rwxrw-r--说明:
- -,第一个短横代表文件类型,-代表普通文件,d代表目录,l代表符号链接,b/c代表设备文件,s/p代表特殊文件
- rwx,紫色背景部分为目录文件所属用户(u)对该目录文件的读(r)写(w)执行(x)权限,
- rw-,黄色背景部分为目录文件所属用户组(g)对该的读(r)写(w)执行(-)权限
- r--,绿色背景部分为目录文件其他用户
4.参数用例
4.1.打印权限变更信息
[root@node1 Desktop]# ll
total 4
-rw-r--r--. 1 root root 9 Jun 9 02:23 test.txt
[root@node1 Desktop]# chmod -v 644 test.txt # 原本就是644权限,-v会提示信息
mode of ‘test.txt’ retained as 0644 (rw-r--r--)
[root@node1 Desktop]# chmod -v 755 test.txt # 644改为755,提示信息
mode of ‘test.txt’ changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)
[root@node1 Desktop]# chmod -c 755 test.txt # 原本就是755权限,-c不会提示信息
[root@node1 Desktop]# chmod -c 644 test.txt # 755改为644,有变化,才提示信息
mode of ‘test.txt’ changed from 0755 (rwxr-xr-x) to 0644 (rw-r--r--)
[root@node1 Desktop]#
4.2. 不打印错误信息
[root@node1 Desktop]# chmod 755 test1.txt
chmod: cannot access ‘test1.txt’: No such file or directory
[root@node1 Desktop]# chmod -f 755 test1.txt
[root@node1 Desktop]#
4.3.安全递归变更根目录权限
注意:不要对根目录修改权限,很可能会导致系统异常
[root@node1 Desktop]# chmod -R --preserve-root 755 /
chmod: it is dangerous to operate recursively on ‘/’
chmod: use --no-preserve-root to override this failsafe
[root@node1 Desktop]#
4.4.把文件读写执行权限改为与其他文件一样的权限
[root@node1 Desktop]# ll
total 8
-rw-r--r--. 1 root root 10 Jun 9 02:34 test1.txt
-rwxr-xr-x. 1 root root 9 Jun 9 02:23 test.txt
[root@node1 Desktop]# chmod --reference=test.txt test1.txt
[root@node1 Desktop]# ll
total 8
-rwxr-xr-x. 1 root root 10 Jun 9 02:34 test1.txt
-rwxr-xr-x. 1 root root 9 Jun 9 02:23 test.txt
[root@node1 Desktop]#
5.赋权格式用例
5.1.按字母表示方式修改权限
[root@node1 Desktop]# ll
total 4
-rwxrwxrwx. 1 root root 9 Jun 9 02:23 test.txt
[root@node1 Desktop]# chmod u+x test.txt # 给文件拥有者赋予可执行权限
[root@node1 Desktop]# chmod ug+x test.txt # 给文件拥有者/及其同用户组其他用户赋予可执行权限
[root@node1 Desktop]# chmod ug+rwx test.txt # 给文件拥有者/及其同用户组其他用户赋予读写执行权限
[root@node1 Desktop]# chmod ugo+rwx test.txt # 给文件拥有者/及其同用户组其他用户/不同用户组其他用户赋予读写执行权限
[root@node1 Desktop]# chmod ugo-x test.txt # 给文件拥有者/及其同用户组其他用户/不同用户组其他用户取消可执行权限
[root@node1 Desktop]# chmod uo-w test.txt # 给文件拥有者/不同用户组其他用户取消读权限
[root@node1 Desktop]# chmod uo=w test.txt # 给文件拥有者/不同用户组其他用户取消所有权限然后赋予读权限
[root@node1 Desktop]# chmod u=g test.txt # 给文件拥有者赋予其同用户组其他用户相同的读写执行权限
[root@node1 Desktop]# chmod a+x test.txt # 给所有用户添加可执行权限
[root@node1 Desktop]# chmod g-w,o-w,o+r test.txt # 同用户组其他用户取消写权限,其他用户取消写权限,其他用户添加读权限
[root@node1 Desktop]# ll
total 4
-rwxr-xr-x. 1 root root 9 Jun 9 02:23 test.txt
[root@node1 Desktop]#
5.2.按数值表示方式修改权限
[root@node1 Desktop]# ll
total 4
-rwxrwxrwx. 1 root root 9 Jun 9 02:23 test.txt
[root@node1 Desktop]# chmod -124 test.txt # 777权限-124权限后为653
[root@node1 Desktop]# chmod -211 test.txt # 653权限-211权限后为442
[root@node1 Desktop]# chmod +114 test.txt # 442权限+114权限后为556
[root@node1 Desktop]# chmod +21 test.txt # +21可以理解为+021,556权限+021权限后为577
[root@node1 Desktop]# chmod =755 test.txt # =755与755等价,强制赋为755权限
[root@node1 Desktop]# ll
total 4
-rwxr-xr-x. 1 root root 9 Jun 9 02:23 test.txt
[root@node1 Desktop]#