Active-Directory
CentOS 7 LDAP 身份驗證:“權限被拒絕”
我正在執行一個 CentOS 7 VirtualBox 實例。我正在嘗試通過我們公司的 Active Directory 伺服器設置 LDAP 身份驗證。
注意:AD 伺服器沒有安裝 Unix 擴展。
設置:
- 我安裝了 nss-pam-ldapd
- nslcd 和 nscd 服務設置為在啟動時執行
- /etc/nsswitch.conf 已被編輯以添加 ldap:
passwd: files ldap group: files ldap shadow: files ldap hosts: files ldap dns myhostname ethers: files ldap networks: files ldap protocols: files ldap rpc: files ldap services: files ldap sss aliases: files ldap nisplus
- /etc/pam.d/password-auth 和 /etc/pam.d/system-auth 編輯添加:
auth sufficient pam_ldap.so use_first_pas account [default=bad success=ok user_unknown=ignore] pam_ldap.so password sufficient pam_ldap.so use_authok session optional pam_ldap session required pam_mkhomedir.so skel=/etc/skel umask=0077
- /etc/nslcd.conf 編輯:
uid nslcd gid nslcd uri ldap://myserver.com/ base dc=myserver,dc=com binddn CN=My Name,OU=Users,OU=DV,DC=myserver,DC=com bindpw PASSWORDHERE # Alternative mappings for Active Directory pagesize 1000 referrals off idle_timelimit 800 filter passwd (&(objectClass=user)(!(objectClass=computer))) map passwd uid userPrincipalName map passwd uidNumber objectSid:CorrectSID map passwd gidNumber objectSid:CorrectSID map passwd homeDirectory "/home/$cn" map passwd gecos displayName map passwd loginShell "/bin/bash" filter group (objectClass=group) map group gidNumber objectSid:CorrectSID ssl no
在重新啟動 VM 並使用預設使用者進行遠端處理時,我可以列出所有 AD 使用者 (user@myserver.com) 和組,使用
$ getent passwd and $ getent group
但是,如果我嘗試使用我的 AD 使用者登錄 GUI 或遠端登錄:
$ ssh my.name@myserver.com@linuxboxip my.name@myserver.com@linuxboxip's password: Permission denied, please try again.
我已經通過調試解決了這個站點上的相關問題,並從頭開始重新配置。沒運氣。
有什麼想法嗎?
好的,我發現了問題。
見連結
編輯 PAM 文件時:/etc/pam.d/password-auth 和 /etc/pam.d/system-auth
必須對適當的部分進行編輯,而不僅僅是添加到文件的底部。特別是,這些
password required pam_deny.so
行必須是該部分中的最後一個條目。我現在可以通過 SSH 和 GUI 使用 LDAP 使用者/密碼登錄。