在 Mac OS X 上,如何将 ACL chmod 为名称中带有空格的组?

在 Mac OS X 上,如何将 ACL chmod 为名称中带有空格的组?

我正在尝试为组“域用户”添加 ACL,但由于组名中包含空格,因此 chmod 无法正确解析它:

$ chmod -R +a 'DOMAIN\Domain Users allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit' shared
Unable to translate 'DOMAIN\Domain' to a UID/GID

我该如何转义空格?我尝试了所有明显的方法,包括单引号、双引号和反斜杠。

答案1

自从苹果chmod 的来源可用,解析器中有一个提示:

if (strchr(pebuf, ':')) /* User/Group names can have spaces */

事实上,如果你阅读手册页,它是这样说的:

如果用户或组名包含空格,您可以使用“:”作为名称和权限之间的分隔符。

因此解决方案是:

$ chmod +a 'DOMAIN\Domain Users:allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit' shared

相关内容