我一直在研究 OpenSolaris 和 ZFS 在 NAS 中的使用。
到目前为止我已经创建了以下内容:
/坦克/项目
/罐/储存
/坦克/开发者
/坦克/沙箱
分配给 tank 的总空间为 3.4Tb (RAIDZ2)。开发人员挂载的是我们的 Subversion 存储库,它应该被锁定,以便只有系统管理员以及 suDevelopers 组中的用户才能访问该内容。
SandBox 是一个游乐区,所有门都是敞开的,可以读/写/删除任何东西。
我想知道如何实现以下目标,是否必须使用 ACL 还是仅使用标准 Unix 权限。
此 NAS 有三组主要用户,这是用户层次结构。除了 CIFS 之外,没有 AD 或其他任何内容来共享此 NAS。
suDevelopers 他们可以访问 tank 中的所有内容。
suStaff 这些用户是场所内的工作人员,他们应该可以访问除坦克中的开发人员 zfs 之外的所有内容。
suContractors 这些用户只能看到存储文件夹,而不能访问其他文件夹。
问题是存储区中的一些文件包含我们不想让承包商看到的敏感信息(序列号、许可证密钥)。我们能否由将文件放在此处的用户在 Windows 中设置这些权限,然后它们会自动设置到正确的位置?
我不确定如何正确执行上述操作以及我应该使用 ACL 还是仅使用 CHMOD。
答案1
好吧,无论您使用传统的 POSIX 权限还是 ACL,您都将chmod
在 Solaris 上使用。在这种情况下,我建议您使用 ACL。您必须将 ACL 分别应用于储罐池中的每个文件系统。我建议将每个文件系统的aclmode
和属性也设置为。aclinherit
passthrough
我认为最好在 Solaris 端设置 ACL,而不是通过 Windows 进行设置。
基本上它看起来像这样:
chmod -R A=\
group:suDevelopers:full_set,\
group:sysadmins:full_set,\
/tank/projects
chmod -R A=\
group:suDevelopers:full_set:allow,\
group:suStaff:full_set:allow,\
group:suContractors:full_set:allow
/tank/storage
chmod -R A=everyone@:full_set:allow /tank/sandbox
等。您还可以使用read_set
只读权限。
您还可以通过许多其他方式使用 ACL 来削减开支,ACL 是 Solaris 上非常强大的系统。您可以阅读man chmod
并man zfs
了解详细信息。
还有本文其中给出了一些进一步的例子。
还请确保您使用的/usr/bin/chmod
是/usr/gnu/bin/chmod
我认为是默认的。