场景是,我有一个 LAN,其中有许多运行 Linux 的计算机与本地网络连接,我可以通过这个网络在不同的计算机上创建帐户并使用 LDAP 授予它们 sudo 权限吗?
答案1
如果您尚未设置 LDAP 服务器,则需要先设置。常用选项是 OpenLDAP 和 389 Server。
设置好这些后,您需要为用户条目选择一个架构。Linux/UNIX 系统最流行的架构可能是“POSIX”架构。您放入 LDAP 中的条目包含与在 /etc/passwd 和 /etc/group 中找到的信息相同的信息。使用 POSIX 架构,objectClass: posixAccount
并objectClass: posixGroup
分别指示用户和组项目。
sudoers 条目还有一个 objectClass。sudoers.ldap sudoRole
(5) 手册页包含有关这些条目的信息。
设置好这些之后,您需要配置您的机器以从 LDAP 中查找用户和 sudo 信息。在大多数现代、流行的 Linux 发行版中,这可以通过配置 sssd 及其 LDAP 扩展来完成。您需要在 sssd.conf 文件中添加一个“域”,它将指定在 LDAP 中查找用户和 sudo 条目的位置。sssd.conf(5)、sssd-sudo(5) 和 sssd-ldap(5) 手册页详细介绍了如何设置 SSSD。
假设所有设置都正确,您应该能够运行id LDAPUSER
(用 LDAP 条目上的用户名替换 LDAPUSER)并取回用户信息。此外,检查 sudo 是否适用于您在 LDAP 中设置的 sudo 角色,就像检查任何其他 sudo 规则一样。