kesalahan ldap_add (80) handler <olcModuleLoad> keluar dengan 1

8

Saya mencoba mengikuti tutorial ini untuk menyiapkan server LDAD dasar (OpenLDAP) untuk autentikasi cleint, tetapi saya terjebak pada langkah di mana saya menambahkan konfigurasi back-end.

Saya telah membuat file backend.ldif saya seperti yang ditentukan, dan saya mencoba menambahkannya dengan:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldif

Tapi saya mendapatkan:

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 lengkap adalah:

#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

Ada saran tentang cara mengatasi masalah? Saya tidak tahu apa-apa tentang server LDAP ini yang pertama saya.

MEMPERBARUI:

Saya sudah mulai dengan instalasi baru 11.04 Server.

Saya telah melakukan yang berikut:

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

Saya mencoba memuat skema pertama:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif

Saya mendapat:

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"

Saya mencoba perintah yang disarankan di bawah ini:

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

Tapi ini tidak membahas tentang modul kali ini, itu mengeluh tentang "Duplicate attributeType".

Jadi saya perlu perintah yang mengatakan "tampilkan tipe atribut yang dimuat" untuk melihat apakah "cosine" sudah ada dalam daftar?

OK, saya akan berasumsi bahwa:

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

tidak perlu karena mereka semua produk kesalahan yang sama.

Jadi saya pindah ke menambahkan ~ / backend.ldif. Saya menghapus baris modeule beban dari atas, karena modul tampaknya sudah dimuat.

Sekarang ketika saya mencoba menambahkan:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldif

Saya mendapat:

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

Yang tidak masuk akal karena ini adalah satu-satunya basis data di komputer, dan ini adalah entri pertama yang saya tambahkan.

Nick
sumber

Jawaban:

6

Pesan kesalahan menunjukkan bahwa back_hdbmodul sudah dimasukkan ke dalam konfigurasi. Anda dapat memverifikasi ini dengan perintah

cat /etc/ldap/slapd.d/cn\=config/cn\=module\{0\}.ldif

Jika ini termasuk baris yang mirip dengan yang berikut, itu sudah termasuk:

olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb 

Jika ini masalahnya, hapus saja enam baris pertama dari Anda backend.ldifdan coba lagi.

Jika Anda ingin memulai dari awal, Anda dapat menggunakan perintah

apt-get purge slapd ldap-utils

untuk menyingkirkan instalasi ldap lengkap termasuk semua file data.

Setelah itu, Anda perlu menginstal ulang OpenLDAP dengan perintah yang sesuai

apt-get install slapd ldap-utils

BTW, saya baru saja mengikuti tutorial ini (saat menggunakan semua nilai default dari skrip mereka) dan ini berfungsi dengan baik pada Lucid VM yang baru dibuat.


Edit

OKE, di posting Anda yang lain, Anda berbicara tentang 10,04. Bahkan, konfigurasi otomatis di 11,04 slapdjauh lebih baik bila dibandingkan dengan 10,04. Apa yang dilakukannya untuk Anda adalah segalanya dalam tutorial mengenai file skema dan backend.ldif dan bahkan bagian dari frontend: Anda dapat menghapus baris berikut dari fronted.ldif dan mencoba untuk melanjutkan dari sana:

# 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 

Beberapa petunjuk lebih lanjut: Konfigurasi backend OpenLDAP ( cn=config) tidak lebih dari kumpulan file LDIF dalam struktur sistem file yang setara dengan struktur LDAP. Anda dapat menelusuri sendiri di /etc/ldap/slapd.d. 10,04 memiliki minimum di sana untuk mulai slapdbekerja, sementara 11,04 menyiapkan semuanya sehingga Anda dapat memulai segera.

Sven
sumber
Saya akan mencoba melakukan semuanya lagi. Saya melakukan ini pada 11,04 VM. Mungkin ada sesuatu yang tidak kompatibel di versi baru? Atau versi OpenLDAP yang datang dengan 11.04 sudah memiliki modul yang dimuat sedangkan 10,04 tidak? Jadi jika saya menginstal ldap dan mengacaukannya, menjalankan "apt-get purge slapd ldap-utils" akan sama seperti jika saya mulai dengan instalasi yang bersih? Itu tidak meninggalkan "sampah" di mana pun?
Nick
OK, saya sudah mencoba lagi dengan instalasi baru dan mendapatkan "olcAttributeTypes: Duplicate attributeType" ketika mencoba memuat skema "cosine". Silakan lihat di atas untuk pesan lengkap.
Nick
Lihat hasil edit saya, ini perlu waktu lama untuk komentar.
Sven
Saya menjalankan LDAP dengan menggunakan 10,04 dan mengikuti tutorialnya lagi. Saya menandai sebagai dipecahkan karena memang menjawab pertanyaan judul. Terima kasih!
Nick
1

tambahkan .la ke akhir back_hdb

LDIF seharusnya sekarang dibaca

#Load dynamic backend modules
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb.la

# 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

untuk penjelasan: http://ubuntuforums.org/archive/index.php/t-1594138.html

Sudh33ra
sumber