我在debian上,想让sudo使用ldap而不是/ etc / sudoers。 任何人都有这样的经验?
现代sudo有能力使用ldap。 在我看来,这是笨重和失败的,但这只是我的经验。 http://www.gratisoft.us/sudo/readme_ldap.html
我绝对喜欢使用networking组来扩展本地的sudoconfiguration,而不是完全依靠ldap。 我的经验法则是,如果有必要运行服务器,它应该是本地的。 只有非生命的用户帐户等进入ldap / nis / whatnot。
我不认为这是失败的,因为你可以有一个本地备份sudoers文件,所以即使你的LDAP服务器closures,你仍然可以使用SUDO来维护它,所以pipe理员可以恢复连接到LDAP服务器。
这样做很简单,如果你有更多100台服务器来pipe理,你会更喜欢有一个集中的sudoers文件,而不是许多本地sudoers文件。
另外看这个,从sudo网站中提取:
为sudoers使用LDAP有几个好处:
Sudo不再需要阅读整个sudoers。 使用LDAP时,每个调用只有两个或三个LDAP查询。 这使得它在LDAP环境中特别快速和特别有用。
如果sudoer中有拼写错误,sudo不再退出。 无法将LDAP数据加载到不符合sudoers架构的服务器中,因此保证了正确的语法。 用户名或主机名仍然可能有拼写错误,但这不会阻止sudo运行。
可以指定覆盖全局默认选项的每个条目选项。 / etc / sudoers仅支持与用户/主机/命令/别名关联的默认选项和有限的选项。 语法复杂,用户难以理解。 将选项直接放在条目中更自然。
visudo程序不再需要。 visudo提供/ etc / sudoers文件的locking和语法检查。 由于LDAP更新是primefaces化的,因此不再需要locking。 由于在将数据插入LDAP时检查语法,因此不需要专门的工具来检查语法。
我能够用选项--with-ldap编译sudo,允许它使用LDAP目录。 sudo源代码提供了一个可以加载到LDAP中的架构,并允许它使用目录而不是/ etc / sudoers
我认为你的意思是说sudo应该使用ldap;)
最简单的方法是通过/ etc / sudoers将sudo授予组,然后通过ldap控制该组的成员资格。
我们尝试在ldap中放置sudoers,但发现pipe理sudo(和访问控制)最简单的方法是将ldap组成员身份与集中的configurationpipe理工具相结合,该工具可以将acl和sudoers文件推送到服务器或服务器组。
我们使用pam_access来控制对服务器的访问,puppet来分发文件和强制acls,但是还有其他的configurationpipe理工具,比如cfengine也可以。