共享目录中新文件的权限


31

我们刚得到一个新的iMac,它使用该/Users/Shared目录存储我们希望计算机上所有用户访问的媒体资产(图片,音频,视频)。最初复制所有文件后,我们设置所需的权限,然后将相同的权限递归应用于所有目录内容。这样做很好,除非每当有人创建新文件或目录时,它都没有相同的权限,并且我们必须重复整个权限过程,然后所有人才能访问它。

有没有办法为该目录中创建的所有新文件/目录设置权限?


扩展属性将允许您设置一些非常宽松的访问权限,并告诉它们在目录内传播,并继续在新创建的内容上进行传播,但是我一生都找不到说明。我只能使用Server Admin Tools在OSX Server上执行此操作,我认为这在这里不是可行的选择?
杰森·萨拉兹

不。我们只能访问iMac随附的OS光盘。
丹尼尔·斯坦迪奇

1
如果您很高兴在码头工作,可能是您想要的答案。
boehj 2011年

Answers:


32

您不能使用传统的POSIX样式权限来执行此操作,但是可以使用可继承的访问控制项来执行此操作。要允许整个“员工”组对/ Users / Shared / reallyshared中的所有内容具有读写访问权限,请使用:

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

file_inherit,directory_inherit部分意味着该访问控制条目将自动添加到该文件夹​​内创建的新文件和文件夹中,但不会自动应用于该文件夹中已有的项目(这就是为什么我将-R标记添加到chmod- 将该标记应用于当前其中所有内容的原因文件夹),它不会应用于在其他地方创建的项目,然后又移到该文件夹​​中(抱歉,我不知道解决方法)。


我真的很想找到一种方法来进行这项工作,即使对于移到共享目录中的文件也是如此。将文件存放在共享目录中而最终没有真正被完全共享是令人沮丧的。
拉文

如果posix权限不允许,则仍然不允许将文件夹写入。也就是说,我在Finder中创建了该文件夹:drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folder最后的+表示它已使用上面的命令应用了扩展的ACL,但是Windows仍然说如果我尝试将文件写入此文件夹,则权限被拒绝。只chmod g+w untitled\ folder让我写。可能是因为我安装了Samba来解决OSX可怕的新SMB实现。
克里斯·龙

@ChrisDragon:听起来像samba没有正确遵守ACL。我在这里找到了添加nt acl support = no[Global]/etc/smb.conf部分的建议,但是我不确定在最新版本的samba中这是否仍然有用。
戈登·戴维森

4

另一种方法是使用终端(又名shell或命令提示符)创建/编辑文件(必须以超级用户身份执行,请参见sudo):
/etc/launchd-user.conf
添加以下行:
umask 000
保存并重新启动。新文件/文件夹(包括通过另存为更改的文件)将允许所有人读取/写入。

这可以通过更改程序的默认文件创建权限来实现,而ACL方法可以根据绑定到特定文件和文件夹的访问规则来实现。

没有此调整,将创建文件,允许用户:读写,组和其他:只读。

如果要在多台计算机之间共享,则需要对将使用该共享的所有计算机执行此操作。

如果共享区域中已有文件和文件夹,则需要使用以下方法使所有人都可以读取/写入它们:
sudo chmod -R og+w <shared-folder-name>

该命令以英语作为更改模式读取,递归遍历所有子文件夹和文件,其他&组权限添加写访问权限,从文件夹开始。

在论坛中提到该方法至少可以在10.6上使用,并且仍然可以在10.7上使用。

其他因素仍然会影响对内容的访问。例如,在“共享”控制面板中设置的权限,主文件夹权限/ ACL,以及在使用“终端”时对外壳有效的任何umask。

查找umaskPosix文件权限有关这些Unix概念的详细信息。在本文中,单词目录是Unix用语的“文件夹”的同义词。您还将遇到术语UID和GID:用户和组ID,它们定义了正在运行的程序(进程)的Posix所有权。请注意,对于不同计算机上的给定用户名,UID和GID是相同或不同的数字。这些数字被分配给在给定计算机上创建的订单帐户中的名称,通常以ID 501开头。家庭网络缺乏一种在计算机之间协调这些分配的机制。因此,在网络共享上,一个文件可能看起来属于不同的用户,因为从计算机访问该文件的角度确定了用户ID与用户名的绑定。因此,共享实际上始终允许每个人以不同程度访问每个人的文件。换句话说,Posix“其他”权限是对访问权限的无限限制,其范围取决于允许在不同计算机上分配的用户ID的完全可预测但明显不确定的访问权限。这显然导致体验上的荒谬变化,在某些网络上,例如在每个Mac上仅创建一个用户帐户的安装程序,就可以共享而无需进行任何权限调整,因为所有帐户都将具有相同的UID(501,否不论帐户的名称是什么),而每个Mac使用多个用户帐户的另一个网络将立即出现问题。因此,有些小组永远不会为此而苦苦挣扎,而另一些小组则可能会看到随着时间的流逝而出现的问题,或者自发出现/消失的问题,

为什么苹果公司在如此容易启用的文件共享功能的配置中留下了令人讨厌的可用性缺陷,这是一个谜。

在外部磁盘上,使用“忽略此卷上的权限”选项解决了此问题。苹果文件共享可能有类似的功能,但是它在哪里。

如果您拥有自己的Samba服务配置,则可以使用其他机制来解决这些问题,但是Samba根本不容易使用。


不赞成使用/etc/launchd-user.conf,而建议使用launchctl。参见support.apple.com/zh-cn/HT201684
Jess Bowers,2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.