chmod(1) - Linux 手册页

名称

chmod - 更改文件模式位

概要

chmod [选项]... 模式[,模式]... 文件...
chmod [选项]... 八进制模式 文件...
chmod [选项]... --reference=参考文件 文件...

描述

此手册页记录了 chmod 的 GNU 版本。chmod 根据模式更改每个给定文件的文件模式位,该模式可以是更改的符号表示形式,也可以是表示新模式位的八进制数字。

符号模式的格式为 [ugoa...][[+-=][权限...]...],其中权限是来自集合 rwxXst 的零个或多个字母,或者来自集合 ugo 的单个字母。可以给出多个符号模式,用逗号分隔。

字母 ugoa 的组合控制将更改哪些用户的访问权限:拥有该文件的用户 (u)、文件组中的其他用户 (g)、不在文件组中的其他用户 (o),或所有用户 (a)。如果未提供这些字母中的任何一个,则效果就像提供了 a 一样,但 umask 中设置的位不受影响。

运算符 + 使所选的文件模式位添加到每个文件的现有文件模式位中;- 使它们被删除;而 = 使它们被添加,并使未提及的位被删除,但目录未提及的用户和组 ID 位不受影响。

字母 rwxXst 为受影响的用户选择文件模式位:读取 (r)、写入 (w)、执行 (或用于目录的搜索) (x)、仅当文件是目录或已经为某些用户具有执行权限时才执行/搜索 (X)、在执行时设置用户或组 ID (s)、限制删除标志或粘滞位 (t)。您可以指定一个或多个这些字母,也可以指定 ugo 字母中的一个:授予文件所有者 (u) 的权限、授予文件组中其他成员的权限 (g) 以及授予既不在前两种类别中的用户的权限 (o)。

数字模式是从一个到四个八进制数字 (0-7),通过加起来具有值 4、2 和 1 的位来获得。省略的数字假定为前导零。第一个数字选择设置用户 ID (4) 和设置组 ID (2) 以及限制删除或 粘滞 (1) 属性。第二个数字选择文件所有者的权限:读取 (4)写入 (2)执行 (1);第三个选择文件组中其他用户的权限,具有相同的值;第四个选择不在文件组中的其他用户的权限,具有相同的值。

chmod 永远不会更改符号链接的权限;chmod 系统调用无法更改它们的权限。这没有问题,因为符号链接的权限从不使用。但是,对于命令行上列出的每个符号链接,chmod 都会更改指向文件的权限。相反,chmod 忽略在递归目录遍历中遇到的符号链接。

Setuid 和 Setgid 位

如果文件的组 ID 与用户的有效组 ID 或用户的辅助组 ID 中的一个不匹配,除非用户具有适当的权限,chmod 会清除常规文件的设置组 ID 位。额外的限制可能导致 MODERFILE 的设置用户 ID 和设置组 ID 位被忽略。此行为取决于底层 chmod 系统调用的策略和功能。如有疑问,请检查底层系统的行为。

chmod 除非您明确指定,否则会保留目录的设置用户 ID 和设置组 ID 位。您可以使用符号模式(如 u+sg-s)来设置或清除这些位,并且可以使用数字模式来设置(但不清除)这些位。

限制删除标志或粘滞位

限制删除标志或粘滞位是一个位,其解释取决于文件类型。对于目录,它阻止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或该目录;这称为目录的限制删除标志,通常在可供世界写入的目录(如 /tmp)中找到。对于某些旧系统上的常规文件,该位将程序的文本映像保存在交换设备上,以便在运行时更快地加载;这称为粘滞位

选项

将每个 FILE 的模式更改为 MODE。

-c, --changes
类似于 verbose,但仅在发生更改时报告
--no-preserve-root
不特殊对待 '/'(默认)
--preserve-root
禁止递归地操作 '/'
-f, --silent, --quiet
抑制大多数错误消息
-v, --verbose
为处理的每个文件输出诊断信息
--reference=参考文件
使用 RFILE 的模式代替 MODE 值
-R, --recursive
递归更改文件和目录
--help
显示此帮助并退出
--version
输出版本信息并退出

每个 MODE 的形式为 '[ugoa]*([-+=]([rwxXst]*|[ugo]))+'。

作者

作者:David MacKenzie 和 Jim Meyering。

报告 Bug

将 chmod 错误报告给 bug-coreutils@gnu.org
GNU coreutils 主页:<https://gnu.net.cn/software/coreutils/>
通用 GNU 软件帮助:<https://gnu.net.cn/gethelp/>
将 chmod 翻译错误报告给 <https://translationproject.org/team/>

版权

版权所有 © 2010 自由软件基金会。 许可 GPLv3+:GNU GPL 第 3 版或更高版本 <https://gnu.org/licenses/gpl.html>。
这是自由软件:您可以自由地修改和重新分发它。在法律允许的范围内,不提供任何担保。

参见

chmod(2)

chmod 的完整文档作为 Texinfo 手册维护。如果您的站点上正确安装了 infochmod 程序,则命令

info coreutils chmod 调用

应该可以访问完整的手册。

引用自

acl(5), apmsleep(1), attr(5), chacl(1), cloginrc(5), collectd.conf(5), cpmchmod(1), faxcron(8), fcntl(2), find(1), finger(1), fsdiff(1), genisoimage(1), gfs2_mount(8), gfs_mount(8), guestfish(1), jk_init(8), kpsestat(1), ksh(1), ksh93(1), lp(4), lslk(8), mailx(1), mkfs.xfs(8), mksh(1), mount.gfs2(8), mtree(8), nfs4_acl(5), nfs4_setfacl(1), path_resolution(2), path_resolution(7), rfchmod(1), rfmkdir(1), rrdcached(1), rsync(1), rsyncd.conf(5), sane-umax_pp(5), setfacl(1), setmode(3), sh(1), shellinaboxd(1), slapd(8), snmpd.conf(5), sssd-krb5(5), star(1), strmode(3), symlink(7), tex4ht(1), texmfstart(1), zapping_setup_fb(1), zoo(1), zshbuiltins(1)