名称

        chmod - 改变文件模式位

用法

        chmod [OPTION]... MODE[,MODE]... FILE...
        chmod [OPTION]... OCTAL-MODE FILE...
        chmod [OPTION]... --reference=RFILE FILE...

描述

chmod根据MODE改变每个文件的文件模式位,MODE可以是用符号或8进制数字表示。

符号模式的格式是 [ugoa...][[-+=][perms...]...],其中perms是0或者从rwxXst中选择多个字母,或从ugo中选择一个字母。多种符号模式可以用逗号分隔。

ugoa控制着哪些用户对文件的访问权限将被更改。u表示文件的拥有者,g表示拥有者所在组的其他用户,o表示组外的用户,a表示所有用户。如果这几个参数都没有提供,默认指定所有用户,但是umask中设置的位不会受影响。

运算符"+"使命令中的位模式追加到文件已有的模式中,"-"去掉已存在的并出现在命令中的模式,"="修改模式。

rwxXst表示文件模式,r(读),w(写),x(执行,或搜索目录),X(执行或只有当文件是一个目录或已经对一些用户有可执行权限时进行搜索),s(在执行时设置用户或组 ID),t(禁止删除标志或粘滞位)。

数字模式表示为四位八进制数字(0-7),引申出4,2,1。省略的数字被假定为前导的数字0。第一个数字选择设置用户 ID (4) ,设置组 ID (2) 和限制删除或粘性 (1) 属性。第二个数字选择文件所有者的权限:读(4),写(2),执行(1)。第三个数字选择文件所属组的其他用户的权限,第四个数字配置其他用户。

chmod永不改变软链接的权限,chmod 系统调用无法更改其权限。这不是一个问题,因为软链接的权限从未使用。但是,chmod可以改变软链接指向的文件的权限。相反,chmod 忽略在递归目录遍历过程中遇到的符号链接。

SETUID 和 SETGID 位

如果文件的组ID和用户的有效组ID或用户的补充组ID之一不匹配,chmod会清空SETUID位,除非用户有适当的特权。额外的限制会导致MODE或RFILE的SETUID和SETGID位被忽略。这个行为依赖于底层 chmod 系统调用的策略和功能。

对于目录 chmod 保留 SETUID 和 SETGID 位,除非你明确指定。你可以设置或清空模式位比如 u+s、g-s。要清除数字模式目录的这些位需要额外的前导0,或前导"=" 比如 00755 或 =755。

禁止删除标志或粘滞位

禁止删除标志或粘滞位是一个单独位,取决于文件类型。对于目录,它阻止无特权的用户删除或重命名这个目录中的文件,除非用户拥有文件或目录。这就叫作目录的禁止删除标志,在全局可写的目录中常见,比如/tmp。对于一些过去的系统中的普通文件,该位将程序的文本镜像保存在交换设备上,以便在运行时加载得更快,这就叫作粘滞位。

选项

改变每个FILE的模式为MODE。使用--reference,改变每个FILE的模式为RFILE。

-c, --changes

                类似-v,但是只在发生改变时展示信息。

-f, --silent, --quiet

                折叠大部分错误消息。

-v, --verbose

                为每个操作的文件输出诊断信息。

--no-preserve-root

                不特殊处理 '/' (默认)。

--preserve-root

                无法对 '/' 进行递归操作。

--reference=RFILE

                使用RFILE的模式而不是MODE。

-R, --recursive

                递归改变文件和目录。

--help

                打印这个帮助文档并退出。

--version

                输出版本信息并推出。

MODE的格式:[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+

使用示例

[root@server dir]# ll
总用量 20
-rw-r--r-- 2 root root  363 12月  2 16:36 a
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月  2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月  1 16:11 dir3
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir4 -> dir2
-rw-r--r-- 1 root root    4 12月  1 18:08 file2
-rw-r--r-- 1 root root    0 11月 28 15:12 file3
-rw-r--r-- 1 root root    0 11月 29 14:41 file4
-rw-r--r-- 1 root root  164 11月 28 16:41 file.zip

## 属主添加可执行权限
[root@server dir]# chmod u+x file[2-4]
[root@server dir]# ll
总用量 20
-rw-r--r-- 2 root root  363 12月  2 16:36 a
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月  2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月  1 16:11 dir3
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir4 -> dir2
-rwxr--r-- 1 root root    4 12月  1 18:08 file2
-rwxr--r-- 1 root root    0 11月 28 15:12 file3
-rwxr--r-- 1 root root    0 11月 29 14:41 file4
-rw-r--r-- 1 root root  164 11月 28 16:41 file.zip

## 属组配置为可读和可执行
[root@server dir]# chmod g=rx file[2-4]
[root@server dir]# ll
总用量 20
-rw-r--r-- 2 root root  363 12月  2 16:36 a
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月  2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月  1 16:11 dir3
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir4 -> dir2
-rwxr-xr-- 1 root root    4 12月  1 18:08 file2
-rwxr-xr-- 1 root root    0 11月 28 15:12 file3
-rwxr-xr-- 1 root root    0 11月 29 14:41 file4
-rw-r--r-- 1 root root  164 11月 28 16:41 file.zip

## 755 意思是属主全部权限,属组可读可执行,其他用户可读可执行
[root@server dir]# chmod 755 file2
[root@server dir]# ll
总用量 20
-rw-r--r-- 2 root root  363 12月  2 16:36 a
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月  2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月  1 16:11 dir3
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir4 -> dir2
-rwxr-xr-x 1 root root    4 12月  1 18:08 file2
-rwxr-xr-- 1 root root    0 11月 28 15:12 file3
-rwxr-xr-- 1 root root    0 11月 29 14:41 file4
-rw-r--r-- 1 root root  164 11月 28 16:41 file.zip

## 递归操作目录 注意:chmod会忽略软链接
[root@server dir]# chmod -R 755 ~/dir/
[root@server dir]# ll
总用量 20
-rwxr-xr-x 2 root root  363 12月  2 16:36 a
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月  2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月  1 16:11 dir3
lrwxrwxrwx 2 root root    4 12月  2 13:54 dir4 -> dir2
-rwxr-xr-x 1 root root    4 12月  1 18:08 file2
-rwxr-xr-x 1 root root    0 11月 28 15:12 file3
-rwxr-xr-x 1 root root    0 11月 29 14:41 file4
-rwxr-xr-x 1 root root  164 11月 28 16:41 file.zip
Logo

更多推荐