Ldap
在本地身份驗證之前嘗試 LDAP 身份驗證
我已經在我的本地網路(CentOS7)中設置了一個 LDAP 系統,它似乎按預期工作。現在,我在 LDAP 中創建了一個使用者,其使用者名與我的一個 LDAP 客戶端上已經存在的本地使用者的使用者名完全相同。當我在客戶端上檢查它們時:
getent passwd | grep anakin
我得到:
anakin:x:1000:1000:Anakin Skywalker:/home/anakin:/bin/bash anakin:*:2000:1000:Anakin Skywalker:/home/anakin:/bin/bash
所以我知道它們都確實存在。因此,當我以anakin身份登錄該機器並檢查我的 ID 時,它會告訴我:
uid=1000(anakin) gid=1000(Jedi) [...]
對我來說,看起來我是以本地使用者而不是 LDAP 使用者身份登錄的。也許預設情況下這是這樣設置的,所以這很好,但是我該如何更改它,所以我在機器檢查具有相同使用者名的本地使用者之前以 LDAP 使用者身份登錄?我想這與pam有關,但實際上*/etc/pam.d/*中的所有文件都以:
# This file is auto-generated. # User changes will be destroyed the next time authconfig is run.
我試圖通過使用來解決我的問題,
authconfig --disableshadow
但沒有取得任何進展。另一件事是,如果我為同名的兩個使用者使用不同的密碼,我可以使用這兩個密碼登錄,但即使我使用了 LDAP 使用者的密碼,我也始終以本地使用者身份登錄。我不知道身份驗證是否真的應該像這樣工作。
/etc/pam.d
這與 . 中的配置文件甚至 PAM 中的配置文件無關。您所指的服務稱為名稱服務切換 (NSS);它的目的是從可用的不同數據庫中查詢資訊,例如 passwd、group、shadow 等。
中條目
/etc/nsswitch.conf
的順序是每個數據庫將被查詢的順序。正如mdpc 所說,由於網路相關問題,通過 LDAP 查詢使用者有時可能會導致失敗。但是,這就是類似的東西
nscd
可以提供幫助的地方。nscd 用於記憶體這些數據庫條目;這可以提高性能,但也可能是進一步混淆的原因,即如果目錄中記憶體的使用者密碼發生變化,可能需要一段時間才能在本地更新。