Linux(Centos 7.6)命令详解:chmod

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]#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆是浪个

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值