Centos6
ldap_add:添加 pw-sha2.la 模組時出現其他(例如,特定於實現)錯誤 (80)
嘗試將模組添加到 OpenLDAP 時出現此錯誤:
# ldapadd -H ldapi:/// -Y EXTERNAL -D 'cn=config' -f ./module.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=module,cn=config" ldap_add: Other (e.g., implementation specific) error (80) additional info: <olcModuleLoad> handler exited with 1
這是ldif:
# cat module.ldif dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: /usr/local/libexec/openldap olcModuleLoad: pw-sha2.la
這是slapd-sha2.so 模組。自述文件說明似乎已過時。
以下是模組目錄內容:
# ls /usr/local/libexec/openldap pw-sha2.a pw-sha2.la pw-sha2.so pw-sha2.so.0 pw-sha2.so.0.0.0
這是 OpenLDAP 中目前的另一個模組:
# ldapsearch -H ldapi:/// -Y EXTERNAL -b 'cn=module{0},cn=config' SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 # extended LDIF # # LDAPv3 # base <cn=module{0},cn=config> with scope subtree # filter: (objectclass=*) # requesting: ALL # # module{0}, config dn: cn=module{0},cn=config objectClass: olcModuleList cn: module{0} olcModuleLoad: {0}syncprov.la # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
我嘗試在 ldif 中使用 {1} 為模組添加後綴,但沒有成功。
OpenLDAP 版本:
# slapd -V @(#) $OpenLDAP: slapd 2.4.40 (Sep 29 2015 10:26:27) $ mockbuild@c6b9.bsys.dev.centos.org:/builddir/build/BUILD/openldap-2.4.40/openldap-2.4.40/build-servers/servers/slapd
我按照以下步驟編譯模組。
安裝先決條件:
yum -y install git libtool openldap-devel nss nss-devel openssl openssl-devel db4 db4-devel
獲取模組源:
git clone https://github.com/gcp/openldap.git
建構模組:
cd openldap ./configure make depend make cd contrib/slapd-modules/passwd/sha2/ make make install
- 模組是否已經載入?我在 cn=config 中沒有看到它。
- 如何將其添加到 OpenLDAP 配置?
@473183469 建議了這個 ldif:
dn: cn=module{0},cn=config objectClass: olcModuleList cn: module{0} olcModulePath: /usr/local/libexec/openldap/ olcModuleLoad: pw-sha2
當我嘗試它時,我收到此錯誤:
# ldapadd -H ldapi:/// -Y EXTERNAL -D 'cn=config' -f ./module.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=module{0},cn=config" ldap_add: Naming violation (64)
編輯 2:
為了清楚起見,我正在嘗試使用從 github 原始碼庫編譯的 pw-sha2 和
slapd
CentOS 包程式碼庫。ls -laFtr /usr/local/libexec/openldap/ total 124 -rwxr-xr-x 1 root root 46158 Nov 6 11:53 pw-sha2.so.0.0.0* lrwxrwxrwx 1 root root 16 Nov 6 11:53 pw-sha2.so.0 -> pw-sha2.so.0.0.0* lrwxrwxrwx 1 root root 16 Nov 6 11:53 pw-sha2.so -> pw-sha2.so.0.0.0* -rw-r--r-- 1 root root 910 Nov 6 11:53 pw-sha2.la -rw-r--r-- 1 root root 61274 Nov 6 11:53 pw-sha2.a drwxr-xr-x 2 root root 4096 Nov 6 11:53 ./ drwxr-xr-x. 3 root root 4096 Nov 19 14:19 ../
官方 CentOS 拍打:
# slapd -VVV @(#) $OpenLDAP: slapd 2.4.40 (Nov 10 2015 09:41:16) $ mockbuild@c6b8.bsys.dev.centos.org:/builddir/build/BUILD/openldap-2.4.40/openldap-2.4.40/build-servers/servers/slapd Included static backends: config ldif monitor bdb hdb ldap mdb meta null passwd relay shell sock
slapd
從原始碼建構:# /usr/local/libexec/slapd -VVV @(#) $OpenLDAP: slapd 2.X (Nov 19 2015 14:18:36) $ root@my_hostname.my_domain.com:/root/openldap/servers/slapd Included static overlays: syncprov Included static backends: config ldif monitor bdb hdb mdb relay
我非常有信心插入以下內容而不會出錯:
dn: cn=module{0},cn=config objectClass: olcModuleList cn: module{0} olcModulePath: /usr/local/libexec/openldap/ olcModuleLoad: pw-sha2
我的信心來自於
ldif
我用來啟用該模組的確切事實。順便說一句:如果您希望密碼架構成為預設值,請
PasswordHash
修改frontend
:dn: olcDatabase={-1}frontend,cn=config changetype: modify replace: olcPasswordHash olcPasswordHash: {SHA256}