ldap_add 錯誤 (80) <olcModuleLoad> 處理程序以 1 退出
我正在嘗試按照本教程設置基本 LDAD 伺服器 (OpenLDAP) 以進行客戶端身份驗證,但我被困在添加後端配置的步驟上。
我已經按照指定創建了我的 backend.ldif 文件,我正在嘗試添加它:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.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 是:
#Load dynamic backend modules dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulepath: /usr/lib/ldap olcModuleload: back_hdb # Database settings dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {1}hdb olcSuffix: dc=mydomain,dc=us olcDbDirectory: /var/lib/ldap olcRootDN: cn=admin,dc=mydomain,dc=us olcRootPW: dmx512 olcDbConfig: set_cachesize 0 2097152 0 olcDbConfig: set_lk_max_objects 1500 olcDbConfig: set_lk_max_locks 1500 olcDbConfig: set_lk_max_lockers 1500 olcDbIndex: objectClass eq olcLastMod: TRUE olcDbCheckpoint: 512 30 olcAccess: to attrs=userPassword by dn="cn=admin,dc=mydomain,dc=us" write by anonymous auth by self write by * none olcAccess: to attrs=shadowLastChange by self write by * read olcAccess: to dn.base="" by * read olcAccess: to * by dn="cn=admin,dc=mydomain,dc=us" write by * read
有關如何排除故障的任何建議?我對 LDAP 伺服器一無所知,這是我的第一個。
更新:
我重新安裝了全新的 11.04 Server。
我做了以下事情:
hostname ldap.mycompany.com nano /etc/hosts (set to ldap.mycompany.com) nano /etc/hostname (set to ldap.mycompany.com) sudo apt-get install slapd ldap-utils
我嘗試載入第一個模式:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
我得到:
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=cosine,cn=schema,cn=config" ldap_add: Other (e.g., implementation specific) error (80) additional info: olcAttributeTypes: Duplicate attributeType: "0.9.2342.19200300.100.1.2"
我嘗試了下面建議的命令:
root@ldap:~# cat /etc/ldap/slapd.d/cn\=config/cn\=module\{0\}.ldif dn: cn=module{0} objectClass: olcModuleList cn: module{0} olcModulePath: /usr/lib/ldap olcModuleLoad: {0}back_hdb structuralObjectClass: olcModuleList entryUUID: 3bedbe64-e4b2-1030-832a-17900c7b3644 creatorsName: cn=config createTimestamp: 20120206020131Z entryCSN: 20120206020131.785958Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20120206020131Z
但是這次它沒有對模組進行編譯,它抱怨“重複的屬性類型”。
所以我需要一個顯示“顯示載入的屬性類型”的命令來查看“餘弦”是否已經在列表中?
好的,我假設:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
是不必要的,因為它們都產生相同的錯誤。
所以我繼續添加 ~/backend.ldif。我從頂部刪除了載入模組行,因為模組似乎已經載入。
現在,當我嘗試添加時:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldif
我得到:
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "olcDatabase=hdb,cn=config" ldap_add: Other (e.g., implementation specific) error (80) additional info: <olcSuffix> namingContext "dc=mycompany,dc=us" already served by a preceding hdb database
這是沒有意義的,因為這是電腦上唯一的數據庫,這是我添加到其中的第一個條目。
錯誤消息表明該
back_hdb
模組已包含在配置中。您可以使用命令驗證這一點cat /etc/ldap/slapd.d/cn\=config/cn\=module\{0\}.ldif
如果這包括類似於以下的行,則它已經包括在內:
olcModulePath: /usr/lib/ldap olcModuleLoad: {0}back_hdb
如果是這種情況,只需刪除前六行,
backend.ldif
然後重試。如果你想從頭開始,你可以使用命令
apt-get purge slapd ldap-utils
擺脫包括所有數據文件的完整 ldap 安裝。
之後,您需要使用相應的命令重新安裝 OpenLDAP
apt-get install slapd ldap-utils
順便說一句,我只是按照本教程(同時使用他們腳本中的所有預設值),這在新創建的 Lucid VM 上執行良好。
編輯
好的,在您的另一篇文章中,您談到了 10.04。事實上,
slapd
與 10.04 相比,11.04 中的自動配置要好得多。它為您做的是教程中有關架構文件和 backend.ldif 的所有內容,甚至是前端的一部分:您可以從 fronted.ldif 中刪除以下行並嘗試從那裡繼續:# Create top-level object in domain dn: dc=tuxnetworks,dc=com objectClass: top objectClass: dcObject objectclass: organization o: Tuxnetworks dc: Tuxnetworks description: LDAP Server # Admin user. dn: cn=admin,dc=tuxnetworks,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword: mypassword
一些進一步的提示:OpenLDAP (
cn=config
) 的後端配置只不過是一個文件系統結構中的 LDIF 文件的集合,相當於 LDAP 結構。您可以在 中自行瀏覽/etc/ldap/slapd.d
。10.04 有最低限度的slapd
工作,而 11.04 準備好一切,以便您可以立即開始。