我有 7 台 ubuntu 服务器和一台 freebsd 上的存储服务器。我正在考虑在这 7 台服务器中的一台上部署 OpenLDAP,以便这些服务器可以拥有一个集中的用户数据库和类似于 Active Directory 的身份验证机制,但我不确定如何做到这一点。
我假设我将在一台服务器上部署 OpenLDAP,并使用 samba 配置同一台服务器(使用 AD 控制器配置)。然后将其他 6 台 Linux 服务器加入此域。
在 OpenLDAP/Samba 服务器上创建的用户是否可以登录其他 6 台服务器?如果可以,如何授予用户 root 访问权限?
我想与用户共享存储服务器上的目录,以便每当他们登录到服务器时,他们都可以简单地安装它并开始访问它,无论他们登录的是这 6 台服务器中的哪一台。
答案1
我的假设是,我将在一台服务器上部署 OpenLDAP,并使用 samba 配置同一台服务器(使用 AD 控制器配置)
这行不通(而且没有必要)。AD 的 LDAP 实现(架构、后端逻辑等)与 OpenLDAP 的功能大不相同,因此您必须使用 Samba 的内置LDAP 服务器。
只需直接转到 Samba AD 部署步骤,它将自动包含 LDAP 服务。
(话虽如此,已经尝试通过大量 slapd 覆盖模块来实现这种组合,但还远未达到生产就绪状态。)
如果您不需要 Windows 客户端,那么您可以使用 FreeIPA 或普通的 OpenLDAP 作为替代方案。您甚至可以通过 Salt/Ansible 部署本地帐户,并仅设置 Kerberos 进行共享身份验证(无论如何,这是 AD 身份验证功能的核心)。
在 OpenLDAP/Samba 服务器上创建的用户是否可以登录其余 6 台服务器?
是的——这就是域加入的全部意义,不是吗?
但是,直接在服务器上创建的用户(传统的 useradd)不会自动出现在 AD 中。您必须在 Samba 中专门创建 AD 帐户,例如使用samba-tool
(或通过 LDAP,或使用 Windows RSAT GUI)。
如果是,那么如何授予该用户 root 访问权限?
与平常相同:将它们添加到 sudoers。
(我相信 SSSD 有一种机制可以自动将 Windows GPO 转换为 sudoers 条目,但我还没有尝试过。)