我将 10.5.6 客户端作为小型服务器运行,但 AFP 共享存在问题。所有客户端都是 OS X 10.5.7
我只在“服务器”上为“文件共享”创建了三个用户。我已经创建了组并将这些用户放入特定的组中。我创建了 ACL 来让每个组访问某些共享。
其中两个用户可以读取和写入任何共享,一个用户不能写入共享,结果不同:
- 复制目录时,只创建目录,不复制里面的文件,操作系统不给出任何错误
- 复制单个文件时出现三个对话框:“您可能需要输入此计算机上的管理员的名称和密码才能更改名为‘xxxx’的项目,“项目‘xxxxx’包含一个或多个您没有的项目阅读权限。您是否要复制您允许阅读的项目?并且,由于您对某些项目没有足够的权限,因此无法完成操作。
使用单个文件,会在服务器上创建一个文件,但它是空的。
该用户所属组的 ACL 是:
0: group:projectmembers allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit
1: group:informationtechnology inherited allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit
2: group:executive inherited allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit
3: group:everyone inherited deny list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit
用户 1 和 2 属于信息技术和执行和项目成员,他们可以在共享上自由读写。用户 3 属于项目成员,不能自由读写。
我已经读到这是一个 UID 问题,但是用户 1 和 2 在客户端和服务器之间没有匹配的 UID,它们可以工作,所以我认为情况并非如此。
有任何想法吗?
在使用 OS X 10.5.6 服务器和 10.5.7 客户端对我自己进行一些测试后替换了我原来的答案:
经过一番实验,我发现 OS X 在共享点的 ACL 继承方面有点疯狂。继承的 ACL 将始终优先于在共享点(或树中较低的位置)设置的 ACL,但仅限于写入权限。您可以很高兴地为用户授予对树下文件夹的读取权限,它会起作用,但如果您授予他们写入权限,它将无可救药地失败。
有什么作用。关闭问题共享上方拒绝规则的继承(你可以在那里拥有它,只是不要让它以任何方式继承)。然后在共享点显式设置拒绝(此时打开继承似乎工作得很好)。我的测试没有问题,但如果你必须管理数百个类似的股票,那就太痛苦了。
一种选择可能是对每个人都已阅读进行顶级全面拒绝,然后如上所述在写入时使用无继承块。请让我知道您的进展情况,因为我对自己的股票管理感兴趣。