chmod
用来变更文件或目录的权限
概要
1chmod [OPTION]... MODE[,MODE]... FILE...
2chmod [OPTION]... OCTAL-MODE FILE...
3chmod [OPTION]... --reference=RFILE FILE...
主要用途
- 通过符号组合的方式更改目标文件或目录的权限。
- 通过八进制数的方式更改目标文件或目录的权限。
- 通过参考文件的权限来更改目标文件或目录的权限。
参数
mode:八进制数或符号组合。
file:指定要更改权限的一到多个文件。
选项
1-c, --changes:当文件的权限更改时输出操作信息。
2--no-preserve-root:不将'/'特殊化处理,默认选项。
3--preserve-root:不能在根目录下递归操作。
4-f, --silent, --quiet:抑制多数错误消息的输出。
5-v, --verbose:无论文件是否更改了权限,一律输出操作信息。
6--reference=RFILE:使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限。
7-R, --recursive:对目录以及目录下的文件递归执行更改权限操作。
8--help:显示帮助信息并退出。
9--version:显示版本信息并退出。
返回值
返回状态为成功除非给出了非法选项或非法参数。
例子
参考
man chmod
文档的DESCRIPTION
段落得知:
u
符号代表当前用户。g
符号代表和当前用户在同一个组的用户,以下简称组用户。o
符号代表其他用户。a
符号代表所有用户。r
符号代表读权限以及八进制数4
。w
符号代表写权限以及八进制数2
。x
符号代表执行权限以及八进制数1
。X
符号代表如果目标文件是可执行文件或目录,可给其设置可执行权限。s
符号代表设置权限suid和sgid,使用权限组合u+s
设定文件的用户的ID位,g+s
设置组用户ID位。t
符号代表只有目录或文件的所有者才可以删除目录下的文件。+
符号代表添加目标用户相应的权限。-
符号代表删除目标用户相应的权限。=
符号代表添加目标用户相应的权限,删除未提到的权限。
1linux文件的用户权限说明:
2
3# 查看当前目录(包含隐藏文件)的长格式。
4ls -la
5 -rw-r--r-- 1 user staff 651 Oct 12 12:53 .gitmodules
6
7# 第1位如果是d则代表目录,是-则代表普通文件。
8# 更多详情请参阅info coreutils 'ls invocation'(ls命令的info文档)的'-l'选项部分。
9# 第2到4位代表当前用户的权限。
10# 第5到7位代表组用户的权限。
11# 第8到10位代表其他用户的权限。
1# 添加组用户的写权限。
2chmod g+w ./test.log
3# 删除其他用户的所有权限。
4chmod o= ./test.log
5# 使得所有用户都没有写权限。
6chmod a-w ./test.log
7# 当前用户具有所有权限,组用户有读写权限,其他用户只有读权限。
8chmod u=rwx, g=rw, o=r ./test.log
9# 等价的八进制数表示:
10chmod 764 ./test.log
11# 将目录以及目录下的文件都设置为所有用户拥有读写权限。
12# 注意,使用'-R'选项一定要保留当前用户的执行和读取权限,否则会报错!
13chmod -R a=rw ./testdir/
14# 根据其他文件的权限设置文件权限。
15chmod --reference=./1.log ./test.log
注意
-
该命令是
GNU coreutils
包中的命令,相关的帮助信息请查看man chmod
或info coreutils 'chmod invocation'
。 -
符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。
-
使用
-R
选项一定要保留当前用户的执行和读取权限,否则会报错!
来源:https://github.com/jaywcjlove/linux-command
最后修改于: Wednesday, January 31, 2024
版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。