OpenLDAP: Mengonversi file datar (slapd.conf) ke OLC (slapd.d) ... tidak dapat mengakses cn = config

0

Saya mencoba mengatur OpenLDAP. Saya mengalami masalah dengan opsi konfigurasi OLC, jadi saya menggunakan input style slapd.conf karena saya adalah noob lengkap di LDAP dan lebih mudah untuk dipahami.

Saya sekarang perlu menggunakan opsi konfigurasi OLC, jadi saya mencoba mengonversi. Saya dapat mengkonversi dengan benar menggunakan perintah

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown ldap:ldap -R /etc/openldap/slapd.d

dan semuanya dimulai dan bekerja dengan benar dan semuanya keren dory. Namun, sepertinya saya tidak dapat mengakses cn=config menggunakan ldapsearch. Saya sudah mencoba akses anonim dengan:

ldapsearch -x -D -b 'cn=config' '(objectclass=*)'

yang kembali 32 No such object

Saya akan senang ide apa pun yang saya lakukan salah di sini.

Ini file slapd.conf (sekarang usang dan dikonversi):

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema

pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args

moduleload memberof.so

access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read
access to dn.base="ou=users,dc=example,dc=com" filter=(objectclass=organizationalUnit)
        by dn.subtree="ou=sysusers,dc=example,dc=com" read
        by users read
access to dn.children="ou=users,dc=example,dc=com" filter=(objectclass=inetOrgPerson) attrs=uid,memberOf,entry,objectClass
        by dn.subtree="ou=sysusers,dc=example,dc=com" read
        by self write
access to dn.children="ou=users,dc=example,dc=com" filter=(objectclass=inetOrgPerson) attrs=mail,cn
        by dn.base="cn=owncloud,ou=sysusers,dc=example,dc=com" read
        by self write
access to dn.base="dc=example,dc=com"
        by users read
access to *
        by self write
        by anonymous auth

database        hdb
suffix          "dc=example,dc=com"
checkpoint      32      30
rootdn          "cn=admin,dc=example,dc=com"
rootpw          {SSHA}redactedredactedredacted
directory       /var/lib/openldap-data
index   objectClass     eq
loglevel 4

overlay memberof

database config
access to *
    by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
    by * read

Saya baru membuat server ldap, maaf jika saya mengajukan pertanyaan bodoh.

Hounddog
sumber
Apakah aturan 'peercred' berfungsi? (Yaitu, tidak ldapsearch -H ldapi:// -Y EXTERNAL punya akses?) Apa slapacl -b cn=config entry/read menunjukkan?
grawity
ldapsearch -H lapi:// -Y EXTERNAL -x -b 'cn=config' '(objectclass=*)' mengembalikan "ldapsearch: tidak kompatibel dengan pilihan otentikasi sebelumnya". slapacl -b cn=config entry/read memberi saya "slapacl: database target tidak mendukung operasi yang diperlukan; Anda dapat mencoba dengan" -u "(dry run). -u memberi saya "akses baca ke entri: DITOLAK"
Hounddog
Oh saya baru sadar bahwa -x dan -Y saling bertentangan. Menghapus -x dari perintah ldapsearch memberi saya, lagi, "32 Tidak ada objek seperti itu"
Hounddog
Lupa menyebutkan - lakukan pencarian sebagai root (karena ACL mengatakan uid 0).
grawity
Yup, semua perintah dijalankan sebagai root.
Hounddog

Jawaban:

0

Ternyata, mencoba menggunakan slaptest untuk menghasilkan direktori slapd.d Anda ketika sudah penuh dengan barang tidak menghasilkan yang baru. Contoh slapd.conf saya yang diposting di atas sebenarnya tidak diubah menjadi slapd.d.

Setelah saya menghapus slapd.d dan menjalankan semuanya lagi, semuanya keren.

Hounddog
sumber