Authconfig 未找到所有 ldap 組
我的(即將成為)管理員帳戶分為兩組:
# ldapsearch \ > -v \ > -H ldaps://localhost:636 \ > -D "${l_dirmgr}" \ > -w $(cat ${f_dirmgr_passphrase}) \ > -b "ou=groups,${l_basedn}" \ > "member=cn=testuser" \ > dn gidNumber member dn: cn=wheel,ou=groups,dc=localdomain gidNumber: 10 member: cn=testuser,ou=users,dc=localdomain dn: cn=users,ou=groups,dc=localdomain gidNumber: 100 member: cn=testuser,ou=users,dc=localdomain
但是,
id
只看到在我的使用者記錄中關聯的 GID:# id testuser uid=20001(testuser) gid=100(users) groups=100(users)
我如何深入了解
authconfig
/sssd
/ldap
以查看它實際在尋找和提取的內容?389DS 訪問日誌沒有顯示任何內容,可能是因為authconfig
/sssd
/whatever 沒有更新其記憶體。我還沒有設法在日誌中進行實際查找。(我確實在日誌中看到
authconfig
/sssd
/something 仍在嘗試進行匿名綁定,儘管我在 sssd.conf 中放置了一個ldap_default_bind_dn
and 。)ldap_default_authtok
沒關係…
ldap_default_authtok
裡面有一個舊密碼…(而且,你在我額頭中間看到的那塊瘀傷是我用頭敲桌子造成的……)
好的,現在有更多的細節。我創建的 LDAP 實例與我對主題的註釋一致。其中包括這部分 LDIF:
dn: cn=config changetype: modify replace: nsslapd-allow-anonymous-access nsslapd-allow-anonymous-access: off - replace: nsslapd-require-secure-binds nsslapd-require-secure-binds: on
由於我不允許匿名訪問,因此我為 PAM 創建了一個用於連接的服務帳戶,以及一個服務帳戶容器:
dn: ou=serviceAccounts,${l_basedn} changetype: add objectClass: organizationalUnit objectClass: top ou: serviceAccounts description: Container for service accounts. Some will have shell access (objectClass: posixUser), most won't. dn: cn=svcAuthenticator,ou=serviceAccounts,${l_basedn} changetype: add objectClass: top objectClass: person cn: svcAuthenticator sn: svcAuthenticator userPassword: $(cat ${f_svcAuthenticator_passphrase}) description: Service account to allow PAM/SSS to search the LDAP database.
(我需要
objectClass: person
給帳戶一個密碼。但是,sn
是必需的屬性objectClass: person
。所以,我偽造了它。)然後,我將該密碼放入
/etc/pam_ldap.conf
and/etc/sssd/sssd.conf
:sed --in-place=.$(date +%Y%m%d) "/#binddn.*/ a\ binddn cn=svcAuthenticator,ou=serviceAccounts,${l_basedn}" /etc/pam_ldap.conf sed --in-place "/#bindpw.*/ a\ bindpw $(cat ${f_svcAuthenticator_passphrase})" /etc/pam_ldap.conf sed --in-place=.$(date +%Y%m%d) "/^ldap_uri.*/ a\ ldap_default_bind_dn = cn=svcAuthenticator,ou=serviceAccounts,${l_basedn}" /etc/sssd/sssd.conf sed --in-place "/^ldap_default_bind_dn.*/ a\ ldap_default_authtok = $(cat ${f_svcAuthenticator_passphrase})" /etc/sssd/sssd.conf
這一切都很好,直到我
${f_svcAuthenticator_passphrase}
在嘗試解決其他 LDAP 問題時更改了 的內容,並且從未將新值傳遞給pam_ldap.conf
orsssd.conf
。一旦我記得這樣做,我就會從
id
命令中得到很好的值,包括完整的組列表。cn=svcSUDO,ou=serviceAccounts,${l_basedn}
我還使用和獲得 SUDO 權限列表$(cat ${f_svcSUDO_passphrase})
。