Я создал базовую базу данных с таким olcDatabase = {0} config.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 5ebe5cbf
dn: olcDatabase={0}config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth manage by * break
structuralObjectClass: olcDatabaseConfig
entryUUID: bc33e700-aabc-1034-9ffd-0bb5002b311b
creatorsName: cn=config
createTimestamp: 20150619105025Z
olcRootPW:: e1NTSEF9ekgzcEZnbVJIYkszRjR1YmZsazRadE5XR1JpZWVJN3Y=
olcRootDN: cn=Manager,cn=config
entryCSN: 20150622150014.466148Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20150622150014Z
olcDatabase = {1} hdb.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 78ca14ea
dn: olcDatabase={1}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=igr,dc=com
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
s auth by dn="cn=admin,dc=igr,dc=com" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=igr,dc=com" write by *
read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=igr,dc=com
olcRootPW:: e1NTSEF9bHdWcWlMeTVUM0RhUXU1ZzZabFkrV1ZwT09xWW04Zk4=
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
structuralObjectClass: olcHdbConfig
entryUUID: bc34c3be-aabc-1034-8005-0bb5002b311b
creatorsName: cn=config
createTimestamp: 20150619105025Z
entryCSN: 20150619105025.210222Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20150619105025Z
чтобы создать другую базу данных, я попробовал это, создал fio.ldif
dn: olcDatabase={2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/ldap/lld
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
creatorsName: cn=config
olcSuffix: dc=linux,dc=com
olcRootDN: cn=Man,dc=linux,dc=com
когда я добавил эту новую базу данных как отдельный DIT, я получил эту ошибку.
ashokkrishna@10:36:04:~/Desktop$ ldapadd -x -D "cn=Manager,cn=config" -f fio.ldif -W
Enter LDAP Password:
adding new entry "olcDatabase={2}hdb"
ldap_add: Server is unwilling to perform (53)
additional info: no global superior knowledge
как это решить? когда я изменил olcDatabase = {2} hdb на "olcDatabase = {2} hdb, cn = config"
ashokkrishna@10:07:38:~/Desktop$ ldapadd -x -D "cn=Manager,cn=config" -f filp.ldif -W
Enter LDAP Password:
adding new entry "olcDatabase={2}hdb,cn=config"
ldap_add: Constraint violation (19)
additional info: structuralObjectClass: no user modification allowed
slapd
не жалуется на ваш суффикс. Расстроен выбранным вами дн.
Вы захотите изменить свой .ldif, чтобы использовать dn: olcDatabase={2}hdb,cn=config
.
Кроме того, вы не можете добавлять или изменять какие-либо рабочие атрибуты. (structuralObjectClass
и creatorsName
два таких атрибута.)