chmod:`+a` 参数是什么意思?

k0p*_*kus 20 osx ubuntu bsd chmod

我正在学习一个教程,它告诉我运行

sudo chmod +a "SOME_PARAMS" some/dir
Run Code Online (Sandbox Code Playgroud)

我很惊讶地看到失败告诉我

chmod: invalid mode: `+a'
Run Code Online (Sandbox Code Playgroud)

所以我想知道:+a模式是什么意思?我如何将它翻译成 Ubuntu 理解的东西?我也想知道为什么它没有得到普遍支持。

Lek*_*eyn 27

我从未见过+a,只有类似的chmod a+r意思是“向所有用户添加读取权限”(所有者/用户、组、其他)。

来自man 1 chmod

符号模式的格式是 [ugoa...][[+-=][perms...]...],其中 perms 是集合 rwxXst 中的零个或多个字母,或集合中的单个字母乌戈。可以给出多个符号模式,用逗号分隔。

字母 ugoa 的组合控制将更改哪些用户对文件的访问权限:拥有它的用户 (u)、文件组中的其他用户 (g)、不在文件组中的其他用户 (o) 或所有用户(一)。如果这些都没有给出,效果就像给出了 a,但在 umask 中设置的位不受影响。

是的,正如您在评论中所说,它是特定于 Mac OS X 的。从http://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/chmod.1.html

ACL 操作选项如下:

+a
+a 模式从命令行上的下一个参数解析新的 ACL 条目,并将其插入到 ACL 中的规范位置。如果提供的条目引用了已列出的身份,则合并两个条目。

  • 这不是一个错误,而是更多 MacOS 特定 http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/chmod.1.html (5认同)