Redhat

為什麼所有 LDAP 使用者都使用 getent passwd 顯示?

  • August 7, 2013

我們正在使用具有 Solaris 和 RHEL 伺服器的 LDAP 伺服器,併計劃將更多伺服器遷移到 RHEL。但是,我們在所有 Red Hat 伺服器上都存在 LDAP 問題。

當我鍵入“getent passwd”時,會顯示整個 LDAP 伺服器上的所有使用者,而不僅僅是有權訪問此伺服器的使用者。通常大約有 10 到 50 人可以訪問伺服器,因此 Solaris 會列印出這個使用者列表,而 Red Hat 會列印出 LDAP 中存在的所有使用者的列表(大約 650 個)。

我更喜歡在 Solaris 上的行為,其中只有有權訪問伺服器的使用者使用“getent passwd”列出。

如何將 RHEL 配置為僅列出有權訪問伺服器的使用者?

您在 中限制訪問,雖然它控制誰可以訪問伺服器,但對伺服器可見/etc/security/access.conf的使用者沒有影響。這通常是您想要的:即使使用者無法登錄伺服器,如果她擁有共享文件系統上的文件,我想查看:alice

$ ls -l ~alice
-rw-rw-r--. 1 alice alice 0 Aug  1 09:09 afile

代替:

$ ls -l ~alice
-rw-rw-r--. 1 5234 5234 0 Aug  1 09:09 afile

也就是說,即使使用者無法登錄系統,我也希望系統了解使用者。

如果要限制對系統可見的使用者集,則需要配置 NSS 子系統以實現某種 LDAP 過濾器。你如何做到這一點取決於你使用什麼工具:

  • user993553 提到nss_ldap,這是與 LDAP 集成的遺留工具。
  • 一些較新的發行版使用SSSD ,它在模組中包含一個ldap_service_search_base參數,LDAP
  • nslcd程序具有filter可應用於每個地圖的選項

您使用哪種機制取決於您正在執行的 RHEL 版本:RHEL 6 具有nslcdsssd(我正在使用nslcd),而我認為早期版本僅限於nss_ldap.

如果這是一個選項,您可以按照以下方式擴展您的 ldap 架構

來自http://www.secure-computing.net/wiki/index.php/OpenLDAP/Authentication

為了獲得這個主機驗證,我們將添加一個自定義模式以允許 posixAccount 對像類上的主機屬性。您可以在此處下載新架構。要使用這個新模式,解壓縮 scn.schema 文件並將其保存到 /usr/local/etc/openldap/schema 並將以下行添加到您的 slapd.conf 文件中:

然後加入nss_ldap.conf nss_base_passwd dc=base,dc=local?one?host=thismachinehost

語法是 base?scope?filter

這是在 freebsd 上測試的,其中 getent passwd 然後只列出匹配過濾器的使用者。

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