背景:我们的组织使用 NIS 进行 UNIX/Linux 身份验证已有 20 多年的历史,一直持续到现在。大约 16 年前的某个时候,Windows 和 Active Directory 出现在我们的组织中,但 AD 从未用于 Linux 身份验证(现在只使用 RHEL/CentOS 和 Ubuntu Linux,所有其他 *nix 都被搁置了。)所以,在在我们所有的许多 Linux 资源中,我们仍然使用传统的 UID/GID 范围来存储用户文件。
现在,管理层终于决定我们需要迁移到 AD 进行 Linux 身份验证,并停止使用 NIS(那里没有真正的争论;),所以我们正在努力利用 SSSD 来做到这一点(这似乎是流行的 [仅?]将 Linux auth 与 AD 集成的方法。)我们面临的问题是如何将用户的旧的基于 NIS 的 UID 和 GID 值关联到他们新的基于 AD 的身份。例如,我在测试系统上的 AD 身份验证用户具有以下来源getent passwd -s sss wdennis
:
root@vm01:~# getent passwd -s sss wdennis
wdennis:*:140001116:140000513:Will Dennis:/home/wdennis:/bin/bash
所以显然 UID/GID 是自动生成的,与我们当前的 NIS 值不对应。在对 AD 及其架构进行一些研究时,我发现用户属性包括以下内容:
uidNumber
gidNumber
unixHomeDirectory
loginShell
我的问题是,SSSD(或我们用于身份验证的任何东西)能否以某种方式消耗文件的现有 UID/GID 的值uidNumber
并将gidNumber
其映射到新的 AD 身份验证用户?或者,我们还能如何将现有的文件所有权信息与经过 AD 授权的用户相关联?(由于文件的数量和拥有它们的机器的数量,实际上不可能chown
将文件添加到新的 UID/GID 值......)
是的,sssd 可以使用 AD 中的 POSIX 属性,而不是进行自己的 ID 映射。
在您的 AD 域部分中
/etc/sssd/sssd.conf
,只需设置ldap_id_mapping = false
.如果你已经在电脑上使用了 sssd 的自动 ID 映射,请务必在重启 sssd 之前清除其缓存。
用于
realm join
将新计算机加入域时,请包含命令行选项--automatic-id-mapping=no
。