我有一个运行ZFS的OpenIndiana服务器,它使用nobody用户和组共享。我并不完全理解Solaris ACL权限,但我确实了解Linux风格的权限。客户端是Windows 8,服务器是OpenIndiana是oi_148。
我无法解决如何使写权限对Windows客户端正确工作。它可以生成新的文件,但不能修改OpenIndiana中由shell创建的文件。
当一个文件("local file")作为bash中的用户nobody在本地创建,另一个文件("smb file")通过SMB (也作为nobody )远程创建时,它们的权限非常不同:
# ls -V
-rw-r--r-- 1 nobody nobody 0 Dec 2 12:24 local file
owner@:rw-p--aARWcCos:-------:allow
group@:r-----a-R-c--s:-------:allow
everyone@:r-----a-R-c--s:-------:allow
-rwx------+ 1 nobody nobody 0 Dec 2 12:24 smb file
user:nobody:rwxpdDaARWcCos:-------:allow
group:2147483648:rwxpdDaARWcCos:-------:allow在bash中,我可以写到smb file,反之亦然,Windows不能写到local file。这让我感到困惑,因为它似乎应该允许SMB客户机写入local file,因为nobody是所有者,而且它在ACL中有一个w。
sharesmb设置相当枯燥,尽管我希望这里可以设置一些类似umask的内容:
sharesmb name=shared,guestok=true如何使这两者协同工作,并具有对称的权限系统,其中SMB和本地用户产生相同的权限?
是否有某种ACL可以在文件系统的根处设置,以允许以类似的方式创建所有文件?
发布于 2012-12-07 13:23:48
我的装置有几个问题:
d和D标志,这意味着它不能被删除/移动,尽管我仍然不明白为什么当SMB不能删除它时,本地用户能够删除它。fd标志。aclinherit属性设置为passthrough而不是restricted。例如:
# chmod A=owner@:rwxpdDaARWcCos:fd:allow /z/shared
# zfs set aclinherit=passthrough z/shared在从SMB和本地创建文件之后:
$ ls -V
total 2
-rwx------+ 1 nobody nobody 0 Dec 8 00:17 local
owner@:rwxpdDaARWcCos:------I:allow
-rwx------+ 1 nobody nobody 0 Dec 8 00:17 smb
owner@:rwxpdDaARWcCos:------I:allow注意I,它显示ACL是继承的。
ZFS设置在ZFS管理指南中描述:
限制-对于新对象,在继承ACL条目时,将删除write_owner和write_acl权限。传递-当属性值设置为传递时,文件将以可继承的ACEs确定的模式创建。如果不存在影响模式的可继承的ACEs,则根据请求的应用程序模式设置模式。
现在,SMB客户端能够删除本地创建的文件。
https://serverfault.com/questions/454313
复制相似问题