一、命令简介

  Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令。chmod根据mode更改每个给定文件的文件模式位,mode可以是要进行更改的符号表示,也可以是表示新模式位的位模式的八进制数。符号模式的格式为[ugoa…][±=][perms…][…],其中perms为集合rwxXst中的零个或多个字母,或集合ugo中的单个字母。可以给出多个符号模式,用逗号分隔。字母ugoa的组合控制哪些用户对文件的访问将被更改:拥有该文件的用户(u)、文件组中的其他用户(g)、不在文件组中的其他用户(o)或所有用户(A)。如果这些都没有给出,效果就好像给出了a,但umask中设置的位不受影响。chmod从不更改符号链接的权限;chmod系统调用无法更改其权限。

二、权限介绍

  Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
在这里插入图片描述
  只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
在这里插入图片描述

权限符号名字说明
r设置为可读权限
w设置为可写权限
x执行权限设置为可执行权限
X特殊执行权限只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
ssetuid/gid当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t粘贴位设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

三、使用示例

1、获取命令帮助信息

[root@s141 ~]# chmod --help

2、查看命令版本

[root@s141 ~]# chmod --version
chmod (GNU coreutils) 8.22
Copyright © 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie and Jim Meyering.

3、给所有用户增加文件执行权限

chmod a+x 1.txt

4、取消其他用户的执行权限

chmod o-x 1.txt

5、使用八进制数值整体设置权限

[root@s141 ~]# chmod 751 1.txt

6、递归设置目录及文件权限

[root@s141 ~]# chmod -R 760 /home/test

7、显示权限修改的详细信息

[root@s141 ~]# chmod -Rv 760 /home/test
mode of ‘/home/test’ retained as 0760 (rwxrw----)
mode of ‘/home/test/.bash_logout’ retained as 0760 (rwxrw----)
mode of ‘/home/test/.bash_profile’ retained as 0760 (rwxrw----)
mode of ‘/home/test/.bashrc’ retained as 0760 (rwxrw----)
mode of ‘/home/test/1’ retained as 0760 (rwxrw----)
mode of ‘/home/test/2’ retained as 0760 (rwxrw----)

8、只有权限发生改变时显示

在这里插入图片描述

9、使用符号设置权限

[root@s141 ~]# chmod o=r,u=rwx,g=rx 1.txt

10、给目录设置t权限

在这里插入图片描述

四、使用语法及参数说明

1、使用语法

用法一:chmod 权限 文件
用法二:chmod 参数 权限 文件

2、参数说明

参数参数说明
-c若该文件权限确实已经更改,才显示其更改动作
-f若该文件权限无法被更改也不要显示错误讯息
-v显示权限变更的详细资料
-R对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
–help显示辅助说明
--version显示版本

3、操作符说明

Operator说明
+为指定的用户类型增加权限
-去除指定用户类型的权限
=设置指定用户权限的设置,即将用户类型的所有权限重新设置

4、用户符号

who用户类型说明
uuser文件所有者
ggroup文件所有者所在组
oothers所有其他用户
aall所用用户, 相当于 ugo
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐