组和权限:嵌套的 UNIX 组

组和权限:嵌套的 UNIX 组

我们正在获得越来越多的外部开发人员(来自不同的客户),并且开始需要一个比临时添加到我们的服务器并向他们添加 ourcompany 组(拥有 /var/www/ - 我们的工作区中的所有内容)更好的策略

最佳解决方案是能够嵌套组,因此如果我可以,@ourcompany 将是组@ourcompany 的所有成员。

ourcompany:xxx:john,joe,bob guestcompany:xxx:guest1,guest2,@ourcompany

但这是不可能的。我正在考虑建立一个模板系统,在其中做一些简单的 sed 操作来获取替代品并创建一个新的 /etc/group

(我不希望使用 guestcompany:xxx:guest1,guest2,john,joe,bob 的原因是,如果我们在公司中添加或删除人员,那么就必须有人仔细检查并确保所有内容都已更新,这可能会导致边缘失效)

我猜下一个合乎逻辑的步骤是 ACL,但根据我过去的经验,它们处理起来有点麻烦,所以我只是想看看你们是否知道任何其他可行的解决方案。

答案1

我并不是建议你这样做,但我已经通过使用 Active Directory 管理我的集中式身份验证并实施 Likewise Open 来验证我的 Linux 计算机来解决了这个问题。LWO 在所有计算机上提供一致的 UID 和 GID,因为它们基于哈希。这使得 NFS 和 rsync 等事情非常容易处理。它还可以很好地解决嵌套组问题。

您是否使用任何类型的集中式身份验证,例如 NIS 或 LDAP?

答案2

我建议使用Linux 受托人。它很久以前就受到 Novell 受托人的启发,并且(在我看来)它比我见过的任何其他东西都要优越。

无需过多细节,您只有一个配置文件需要维护;尝试使用 ACL 等,您的可见性不是很好,因为您必须单独查询文件。

使用 Linux 受托人,您还可以选择与 Unix 权限进行 AND,或者将它们全部忽略。

唯一的缺点是它是一个内核模块(这本身并不是坏事),但您可能需要使用适当的支持重新编译内核(根据受托人的文档)。这也不是问题,但如果您有支持,例如来自 Red Hat,那么重新编译/修改内核将不是一个选择。

答案3

我不会让他们访问您的工作区。我会为他们设置访问 git 或 subversion 存储库的权限,然后将他们的更改拉到您的系统上进行部署。您可以编写一个测试服务器脚本,定期从您的存储库更新,这样就可以在无需开发人员干预的情况下测试更改。

答案4

也许是时候使用像 LDAP 这样的集中式系统了?我建议使用 FreeIPA:非常灵活、用户界面好、功能丰富。而且它很好用。

相关内容