ข้อผิดพลาดno global superior knowledge
หมายความว่าslapd
ไม่รู้ว่าจะใส่รายการใหม่ของคุณที่ไหน โดยทั่วไปหมายความว่าคุณยังไม่ได้กำหนดฐานข้อมูลที่เหมาะสม ด้วยระบบใหม่ (คนที่ใช้cn=config
แทนslapd.conf
) คุณจะมักจะเป็นครั้งแรกเพิ่มฐานข้อมูลใหม่หรือปรับเปลี่ยนรายการฐานข้อมูลที่มีอยู่ใช้หรือldapadd
ldapmodify
ตัวอย่างเช่นในระบบ Fedora 17 ของฉันการติดตั้งเริ่มต้นจะตั้งค่าฐานข้อมูลเช่นนี้สำหรับการโฮสต์dc=my-domain,dc=com
:
dn: olcDatabase={2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
creatorsName: cn=config
olcSuffix: dc=my-domain,dc=com
olcRootDN: cn=Manager,dc=my-domain,dc=com
ในการโฮสต์องค์กรของคุณ ( o=myorganization, c=fr
) ฉันจะต้องสร้างไฟล์ LDIF ต่อไปนี้:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: o=myorganization, c=fr
-
replace: olcRootDN
olcRootDN: cn=Manager,o=myorganization,c=fr
-
replace: olcAccess
olcAccess: {0}to *
by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" write
by dn.base="cn=Manager,o=myorganization,c=fr" write
by * none
และฉันจะโหลดการดัดแปลงเหล่านี้ดังนี้:
ldapmodify -Y EXTERNAL -H ldapi:/// -f mychanges.ldif
สิ่งนี้ใช้ได้เนื่องจากolcAccess
บรรทัดต่อไปนี้มีอยู่แล้วในการกำหนดค่า:
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to *
by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by * none
การดำเนินการนี้เป็นการroot
ติดต่อslapd
ผ่านldapi:///
ซ็อกเก็ตการเข้าถึงcn=config
ต้นไม้โดยไม่ต้องใช้รหัสผ่าน
ฉันจะโหลดในรายการระดับบนสุดของฉัน:
dn: o=myorganization, c=fr
objectclass: organization
o: myorganization
โดยวิ่ง:
ldapadd -Y EXTERNAL -H ldapi:/// -f myobject.ldif
ทำงานได้เพราะฉันได้เพิ่ม ACL ที่คล้ายกันลงในฐานข้อมูลนี้ โปรดทราบว่าฉันไม่จำเป็นต้องเริ่มต้นc=fr
ที่นี่เพราะฐานข้อมูลถูกกำหนดให้พักo=myorganization,c=fr