我正在尝试在 ubuntu 上设置 OpenLdap。
以下命令尝试添加 accesslog 数据库:
ldapmodify -Y EXTERNAL -H ldapi:/// -f test.ldif
当名称为“ {2}mdb
”时,结果是成功:
dn: olcDatabase={2}mdb,cn=config
changetype: add
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {2}mdb
olcDbDirectory: /var/lib/ldap/accesslog
olcSuffix: cn=accesslog
olcRootDN: cn=test,dc=example,dc=com
olcDbIndex: default eq
olcDbIndex: entryCSN,objectClass,reqEnd,reqResult,reqStart
结果如下:
olcDatabase: {-1}frontend
olcDatabase: {0}config
olcDatabase: {1}mdb
olcDatabase: {2}mdb
但当名称为“ {2}accesslog
”时,结果失败:
dn: olcDatabase={2}accesslog,cn=config
changetype: add
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {2}accesslog
olcDbDirectory: /var/lib/ldap/accesslog
olcSuffix: cn=accesslog
olcRootDN: cn=test,dc=example,dc=com
olcDbIndex: default eq
olcDbIndex: entryCSN,objectClass,reqEnd,reqResult,reqStart
adding new entry "olcDatabase={2}accesslog,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
additional info: <olcDatabase> failed init
结果如下:
olcDatabase: {-1}frontend
olcDatabase: {0}config
olcDatabase: {1}mdb
已存在一个名为“ {1}mdb
”的数据库。是否可以将 accesslog 数据库名称更改为“ {2}accesslog
”?
答案1
我感觉你正在尝试将 LDAP 用于它不该做的事情。仅当你想创建单独的 DIT(即具有不同根的单独树)时才需要创建新数据库。
“mdb”部分{1}mdb
不是姓名数据库,但它的类型。因此,它不是一个自由格式的条目,因为您需要指定服务器支持的数据库类型(“mdb”在这里是安全的选择)。