如何在 MacOSX 中正确设置组文件权限

如何在 MacOSX 中正确设置组文件权限

我有几个用户,一个是通过 OSX GUI 创建的,一个是没有人适用于 nginx 和 php-fpm。

以下所有命令均按如下方式执行

我为我的项目创建了新组:

dscl . -create /groups/mygroup gid 404 # used some random id here, is it ok?

将用户添加到组:

dseditgroup -o edit -a myuser -t user mygroup
dseditgroup -o edit -a nobody -t user mygroup

id表示用户现在确实在该组中。

ls -la回报包括:

drwxr-xr-x  27 myuser   mygroup      918 Dec  4 00:00 myproject

sudo -u nobody stat /Users/myuser/Documents/www/myproject

返回

stat: Permission denied

怎么了?

答案1

为了统计 /Users/myuser/Documents/www/myproject,nobody 用户需要能够遍历每个目录,这意味着它需要对每个目录有“搜索”(也称为“执行”,出于历史原因)访问权限。通常,只有 myuser 对 /Users/myuser/Documents 有权限,因此,除非您更改了此权限,否则只有 myuser 可以执行此操作任何事物在该文件夹中。

如果您需要无人帐户才能访问此文件夹,我建议使用访问控制列表来添加所需的权限:

chmod +a "group:mygroup allow search" /Users/myuser/Documents /Users/myuser/Documents/www

顺便说一句,OS X 已经有一个“nobody”用户帐户作为系统用户和组的标准集合的一部分;我建议不要修改它,以免破坏任何依赖于它具有某些属性的系统功能(/安全系统)。如果您需要一个具有非标准权限/组成员身份/等的帐户,请创建一个不同的帐户并使用它。

相关内容