我想向我的 cifs 共享授予共享权限,但我猜 unix 只能授予文件权限,例如:
/usr/bin/chmod -R A+group@:full_set:fd:allow pool/test
这是不好的方法,因为我在某些共享中有几百万个文件,而这项工作花了几天时间!每次我不想设置这个目录中的每个文件。
在 Windows 端,文件或文件夹有 2 种不同的权限:
1- 文件权限。
2- 共享权限。
如果我使用共享权限,我不需要设置 chmod 目录中的每个文件或文件夹,您只需在目录顶部授予 Ro 或 Rw 共享权限,几秒钟内一切就OK了。
我可以在 Solaris 上使用共享权限吗?
答案1
是的,你可以这么做。
它们存储在每个共享的文件中,您可以在相应位置访问 ( ls
) 和修改 ( chmod
) 该文件(假设直接挂载映射)
/<pool>/<filesystem>/.zfs/shares/<share>
其中<pool>
和<filesystem>
是 ZFS 文件系统的安装路径,<share>
是 CIFS 共享的名称。例子:
FS: pool0/users/bob
Path: /pool0/users/bob/.zfs/shares/bobs_home
但要注意:共享权限只能针对整个共享进行设置,不能进行细分。此外,所有文件 ACL 仍然有效并将进行评估。将其视为另一扇门 - 一旦您通过“共享”安全门,您仍然必须通过“文件”安全门才能最终获得访问权限。
这取决于您的目标:
如果您想在不同时间为不同的用户提供一组固定的权限,则在文件 ACL 中使用组而不是用户可能会更好。您从组中添加或删除用户,他会立即获得或失去对该组已设置的所有文件的访问权限。当然,有时您仍然需要删除或添加组本身,但很可能不会那么频繁。您保留所有粒度。
如果您希望在不更改文件的情况下对数据有不同的“视图”,即使是在同一时间,共享权限可能正是您想要的。您可以创建一个或多个共享(每个共享具有不同的共享 ACL 和名称,引用相同的数据集)并快速允许/拒绝用户或组访问后面的内容。如果用户也可以本地登录,他们当然可以绕过这些权限。