Active-Directory

Linux:從 NIS 轉換為 AD 身份驗證,如何將舊 UID/GID 關聯到“新”使用者?

  • July 21, 2021

背景:我們的組織使用 NIS 進行 UNIX/Linux 身份驗證已有 20 多年的歷史,一直持續到現在。大約 16 年前的某個時候,Windows 和 Active Directory 出現在我們的組織中,但 AD 從未用於 Linux 身份驗證(現在只使用 RHEL/CentOS 和 Ubuntu Linux,所有其他 *nix 都被擱置了。)所以,在在我們所有的許多 Linux 資源中,我們仍然使用傳統的 UID/GID 範圍來儲存使用者文件。

現在,管理層最終決定我們需要遷移到 AD 進行 Linux 身份驗證,並停止使用 NIS(那裡沒有真正的爭論;)所以我們正在努力利用 SSSD 來做到這一點(這似乎是流行的

$$ only? $$將 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 之前清除其記憶體。

rm -f /var/lib/sss/db/*

用於realm join將新電腦加入域時,請包含命令行選項--automatic-id-mapping=no

引用自:https://serverfault.com/questions/1070163