오류 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