chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令。
chmod命令 -Linux手册页
著者
作者:David MacKenzie和Jim Meyering。
语法
chmod [选项] [模式] 文件或目录
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
命令常用选项及作用
执行令 chmod --help
执行命令结果
参数
- u 表示该文件的拥有者。
- g 表示与该文件的拥有者属于同一个群体(group)者。
- o 表示其他以外的人。
- a 表示这三者皆是。
- + 表示增加权限。
- - 表示取消权限。
- = 表示唯一设定权限。
- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
- -c : 若该文件权限确实已经更改,才显示其更改动作。
- -f : 若该文件权限无法被更改也不要显示错误讯息。
- -v : 显示权限变更的详细资料。
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)。
- --help : 显示辅助说明。
- --version : 显示版本。
符号模式
使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。 命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明,如 who 的符号模式表所示:
permission 的符号模式表:
八进制语法
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
chmod 744 test.sh
拆解这些数字中的每一个并尝试理解它们:
- 第一个数字 (7) 表示用户的权限:7 = ( 4 + 2 + 1)
- 第二个数字 (4) 表示组的权限:4 (
read
) - 第三个数字 (4) 表示其他人的权限:4 (
read
)
命令:chmod ugo+r test4.text
执行命令 :chmod ugo+r test4.text
将文件 test4.text 设为所有人都可读取
命令:chmod a+r test4.text
执行命令 :chmod a+r test4.text
将文件 test4.text 设为所有人都可读取
命令:chmod ug+w,o-w test4.text test5.sh
执行命令 :chmod ug+w,o-w test4.text test5.sh
将文件 test4.text 与 test5.sh 设为该文件拥有者,与其所属同一个群体者可写入,其他以外的人不可写入
命令:chmod u+x test5.sh
执行命令 :chmod u+x test5.sh
将 test5.sh 文件拥有者增加可执行权限
命令:chmod -R a+r *
执行命令 :chmod -R a+r *
将目前目录下的所有文件与子目录皆设为任何人可读取
命令:chmod -R u+r,go-r test1
执行命令 :chmod -R u+r,go-r test1
将test1目录和其子目录层次结构中的所有文件给用户增加读权限,而对用户组和其他用户删除读权限
【美图欣赏】