组和权限:嵌套的UNIX组

我们正在越来越多的外部开发者(来自不同的客户),并开始需要一个更好的策略,而不是添加到我们的服务器,并添加到我们的公司(它拥有/ var / www /我们的工作空间中的一切)

最好的解决scheme是能够嵌套组,所以如果我可以@ourcompany将所有成员的组@ourcompany。

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

但这不可能。 我正在做一个模板系统的思路,在那里我做一些简单的sed的东西来取代和创build一个新的/ etc /组

(我不希望guestcompany:xxx:guest1,guest2,john,joe,bob的原因是因为如果我们添加或删除我们公司的人员,而不是有人需要通过,并确保一切都更新,这可能会下降closures边缘)

我想下一个合乎逻辑的步骤是ACL,但是从我过去的经验来看,他们有点麻烦,所以我只想看看你们是否有其他解决scheme。

我并不是build议你这样做,但我已经解决了这个问题,使用Active Directory来pipe理我的集中式身份validation,并执行了“同步打开”来validation我的Linux机器。 LWO在所有机器上都提供了一致的UID和GID,因为它们基于散列。 这使得像NFS和rsync这样的事情很容易处理。 它也很好地解决了嵌套组。

你使用任何types的集中authentication,如NIS或LDAP?

我会推荐使用Linux受托人 。 它很早以前就受到了Novell的受托人的启发,而且比我见过的其他任何东西都要优越。

没有太多的细节,你有一个单独的configuration文件来维护; 尝试使用ACL等,你的可见性不是很好,因为你必须单独查询文件。

有了Linux受托人,您也可以select与Unix权限进行AND,或者一起忽略它们。

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

我根本不会让他们进入你的工作空间。 我将它们设置为访问git或Subversion存储库,然后将其更改拖放到您的系统上进行部署。 您可以脚本化testing服务器以定期从存储库进行更新,以便可以在没有开发人员干预的情况下testing更改。

我知道ACL可能是一个麻烦。 我避开它们,只要我没有明确地要求它们。 但在你的情况下,他们似乎是最好的select。

我会做LWO,如果…你已经有一个Windows AD和许多潜在的机器需要这种方式的权限。

也许是时候使用集中式系统,比如LDAP? 我会吸收FreeIPA:非常灵活,很好的用户界面,很多的function。 它只是工作。