linux服务器 – 集中用户pipe理

我build立了几个Linux服务器(用ssh,apache,gitolite),但是我想要集中用户pipe理。 到目前为止,我已经设置了LDAP目录支持,这很好。 但是这里有一个问题:我希望某个用户U对服务器A的访问权限不同于服务器B.假设我希望用户U访问这样的规范: – 服务器A:仅访问主文件夹 – 服务器B:访问主文件夹和/ mnt /文件夹 – 服务器C:在此服务器上,用户U是root用户

我还希望能够快速更改权限:恢复/授予用户权限,如授予用户U更改/ mnt中的所有内容。

所以主要的问题是:在不同的服务器上支持不同的访问规则(权限),我应该看什么(Kerberos,radius,…?)。

谢谢

在/etc/security/access.conf下的大多数发行版中都提供了一个简单但有用的login限制机制来定义“用户A被允许login到主机A,B和C但不是Dtypesconfiguration”的访问规则。 您可以按组,按用户,从主机,从子网等指定

正如其他人所提到的,你可以用cfengine或puppet等工具来控制这些变化的部署。

和其他人一样,可以使用'sudo'(通过/ etc / sudoersconfiguration)来控制对LDAP中特定的二进制文件进行根类似的访问。 这很灵活。 男人sudo /男人sudoers

再次提到,如果经典用户/组/其他rwx权限不足以按组或用户控制对文件系统对象的访问,则可以使用POSIX ACL。

如果您正在讨论文件系统权限,那么您可以使用POSIX acls和分层组进行详细的ACL设置,并通过LDAP提供组信息来完成您想要的操作。

如果你的权限级别是相当静态的,那么使用“完全访问/ mnt”这样的逻辑权限块来设置基本组可能就足够了,然后使用LDAP来处理从用户帐户中添加/删除该组。

如果您想要更多地dynamic控制权限,那么您必须查看如何更改相关系统上的权限或ACL。 推送ACL或文件系统权限变化的一种方法是通过像Puppet或Chef这样的工具,这样可以pipe理跨机器的configuration更改。 您可以通过这些工具之一处理所有事情(例如,包括帐户创build和组成员资格),或者您可以将帐户/组信息存储在LDAP中,并只需推出ACL更改。

就“在这个服务器上用户U是root用户”而言,没有什么我能想到的,它会让你自己去做。 root用户是root用户,其他用户不是 – 故事结束。 你可以改变另一个用户的uid为0,但这是丑陋,丑陋,丑陋。 你可以做的是使用组成员资格来控制谁可以使用sudo命令获得root权限,并再次使用LDAP将组成员身份提供给有问题的服务器。

请记住,login时,组成员身份更改会生效,因此某些更改可能会延迟,并且还会考虑在您的环境中对LDAP结果进行的任何NSScachingcaching(例如,通过nscd)

前两项可以由拥有或不拥有LDAP的所有权和组来处理。

如果使用可以使用用户标识和组的ACL,更改访问权限应该会更容易。

有一个用户在服务器上的根将在所有服务器上的根。 作为root用户,UID必须为0.允许任何用户以root用户身份login是不安全的做法。 sudo是向用户授予root访问权限的常规方法,具有完全限制主机和/或主机组访问的权限。 通常的主机组是ALL。 更改/etc/sudoers的内容不会/etc/sudoers正在运行的进程。

您可能需要实施cfenginepuppet或类似工具来推出您的更改。 这将缓解计划中的访问更改,并提供一些文件,你已经做了什么。 如果需要,可以快速完成更改,但如果需要频繁进行快速更改,我将非常担心。

用户所在的组设置了login,因此撤销组不会修改login用户的访问权限。 文件访问权限的更改将对新访问立即生效。 我没有validation打开文件的影响,但期望原始访问将适用。

查看/etc/ldap.conf中的pam_check_选项,了解可用于LDAP和pam的一些选项。

如果您在LDAP中创build组AdminServerC,然后添加到服务器C下面的语句中的/etc/sudoers ? :

 %AdminServerC ALL=(ALL) ALL