Centos
LDAP 在 Linux 客戶端上顯示過多的使用者和組
我們在 Solaris 伺服器上託管 LDAP,並使用 150 個 Solaris 客戶端和 50 個 Linux 客戶端。使用者和組有一個他們能夠訪問的網路組(伺服器主機名)列表。這意味著使用者 apacheman01 只能使用他的使用者名/密碼通過 SSH 訪問特定伺服器。到目前為止,這一切都很好。
ldap.conf: [root@tst-01 ~]# cat /etc/openldap/ldap.conf TLS_CACERTDIR /etc/openldap/cacerts URI ldap://ldap1.tst.domain.tld ldap://ldap2.tst.domain.tld BASE dc=tst,dc=domain,dc=tld
但是,這些命令會顯示 LDAP 伺服器上可用的所有使用者和組,而不僅僅是有權訪問此伺服器的使用者。這也意味著當使用者登錄時,它可以“su -”到另一個甚至不應該訪問伺服器的使用者。
getent passwd getent group
因此 LDAP 身份驗證與初始 LDAP SSH 身份驗證一樣有效,但 getent passwd/group 不應列出 LDAP 上的所有使用者/組,而僅列出分配給這些使用者/組的伺服器/網路組。
這是預期的行為,如下文所述
getent(1)
:getent 命令顯示名稱服務切換庫支持的數據庫中的條目,這些庫是 在 /etc/nsswitch.conf 中配置。如果提供了一個或多個關鍵參數,則只有 匹配提供的鍵將被顯示。否則,如果沒有提供密鑰,將顯示所有條目 (除非數據庫不支持列舉)。
如果要限制使用
su
,請/etc/pam.d/su
改用:auth required pam_wheel.so