我在 Debian 上,希望 sudo 使用 ldap 而不是 /etc/sudoers。有人有这样做的经验吗?
答案1
现代 sudo 可以使用 ldap。在我看来,这很笨重,而且容易失败,但这只是我的经验。 http://www.gratisoft.us/sudo/readme_ldap.html
我绝对更喜欢使用 netgroups 来扩展本地 sudo 配置,而不是完全依赖 ldap。我的经验法则是,如果需要运行服务器,它应该是本地的。只有不重要的用户帐户等才会进入 ldap/nis/whatnot。
答案2
我不认为这容易失败,因为您可以拥有本地备份 sudoers 文件,所以即使您的 LDAP 服务器已关闭,您仍然可以使用 SUDO 来维护它,这样管理员就可以恢复与 LDAP 服务器的连接。
这非常简单,当您需要管理 100 多台服务器时,您会更喜欢有一个集中的 sudoers 文件,而不是许多本地 sudoers。
另外看看这个,摘自 sudo 网站:
对 sudoers 使用 LDAP 有几个好处:
Sudo 不再需要完整读取 sudoers。使用 LDAP 时,每次调用只需两到三个 LDAP 查询。这使得它特别快,并且在 LDAP 环境中特别有用。
如果 sudoers 中出现拼写错误,Sudo 将不再退出。无法将不符合 sudoers 架构的 LDAP 数据加载到服务器中,因此可以保证语法正确。用户名或主机名中仍然可能出现拼写错误,但这不会阻止 sudo 运行。
可以指定每个条目的选项来覆盖全局默认选项。/etc/sudoers 仅支持默认选项和与用户/主机/命令/别名相关的有限选项。语法很复杂,用户可能难以理解。将选项直接放在条目中更自然。
visudo 程序不再需要。visudo 提供 /etc/sudoers 文件的锁定和语法检查。由于 LDAP 更新是原子的,因此锁定不再是必要的。由于在将数据插入 LDAP 时会检查语法,因此不需要专门的工具来检查语法。
答案3
我能够使用--with-ldap
允许它使用 LDAP 目录的选项来编译 sudo。sudo 源带有一个可以加载到 LDAP 中的模式,并允许它使用目录而不是 /etc/sudoers
答案4
我们尝试将 sudoers 放入 ldap,但发现管理 sudo(和访问控制)的最简单方法是将 ldap 组成员身份与集中式配置管理工具相结合,该工具可以将 acl 和 sudoers 文件推送到服务器或服务器组。
我们使用 pam_access 来控制对服务器的访问,使用 puppet 来分发文件和强制执行 acl,但还有其他配置管理工具(如 cfengine)也可以使用。