如何在没有 GUI 的情况下配置 Apache Directory Server

如何在没有 GUI 的情况下配置 Apache Directory Server

我是 Apache Directory Server (apacheds-2.0.0-M23) 的新手,有关它的官方文档非常不完整。我知道可以使用 Apache Directory Studio GUI 轻松配置服务器,但我希望将服务器部署在没有图形界面的远程服务器上,这意味着无法使用 apache Directory Studio。

我尝试过阅读,然后我使用 apache studio 创建了一个新分区,以查看磁盘上创建了哪些文件。实际上,存在使用文档中列出的属性创建的文件夹和 .ldif 文件。这里的问题是,强制属性有一些自动生成的值,例如来自此的entryCSN列表对于文件indexes.ldif

那么有人可以告诉我如何:

Add a partition, a JDBM one
Import an ldif file of entries under that partition

答案1

你见过吗有关创建分区的文档?第一部分描述如何使用 Apache Directory Studio GUI 添加它们。但最后有一个 Java 示例,也使用了一个ldif文件:

dn: ads-partitionId=example,ou=partitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectClass: ads-base
objectclass: ads-partition
objectclass: ads-jdbmPartition
ads-partitionSuffix: dc=example,dc=com
ads-contextentry:: ZG46IGRjPWV4YW1wbGUsZGM9Y29tCmRjOiBleGFtcGxlCm9iamVjdGNsYXNzOiBkb21haW4Kb2JqZWN0Y2xhc3M6IHRvcAoK
ads-jdbmpartitionoptimizerenabled: TRUE
ads-partitioncachesize: 10000
ads-partitionsynconwrite: TRUE
ads-partitionid: example
ads-enabled: TRUE

您应该能够通过将上述内容放在分区内容(OU、用户等)ldif之前来生成新分区。ldif请务必注意ads-contextentry包含 Base64 编码格式的分区 DN 的属性,例如示例分区:

dn: dc=example,dc=com
dc: example
objectclass: domain
objectclass: top

答案2

例如,创建一个如下的域:

dn: dc=marmoser,dc=local
dc: marmoser
objectclass: domain
objectclass: top

你必须通过base64将其编码到ads-contextentry(dn: dc=marmoser,dc=local\n...)

将此缓冲区保存到 marmoser-partition.ldif 中

dn: ads-partitionId=marmoser,ou=partitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectClass: ads-base
objectclass: ads-partition
objectclass: ads-jdbmPartition
ads-enabled: TRUE
ads-partitionSuffix: dc=marmoser,dc=local
ads-contextentry:: ZG46IGRjPW1hcm1vc2VyLGRjPWxvY2FsCmRjOiBtYXJtb3NlcgpvYmplY3RjbGFzczogZG9tYWluCm9iamVjdGNsYXNzOiB0b3AK
ads-partitioncachesize: 1000
ads-partitionsynconwrite: TRUE
ads-partitionid: marmoser

dn: ou=indexes,ads-partitionId=marmoser,ou=partitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: organizationalUnit
ou: indexes

dn: ads-indexAttributeId=uid,ou=indexes,ads-partitionId=marmoser,ou=partitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-base
objectclass: ads-index
objectclass: ads-jdbmIndex
ads-indexAttributeId: uid
ads-enabled: TRUE
ads-indexhasreverse: FALSE

dn: ads-indexAttributeId=dc,ou=indexes,ads-partitionId=marmoser,ou=partitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-base
objectclass: ads-index
objectclass: ads-jdbmIndex
ads-indexAttributeId: dc
ads-enabled: TRUE
ads-indexhasreverse: FALSE

执行

ldapmodify -h localhost -p 10389 -D "uid=admin,ou=system" -w secret -a -f marmoser-partition.ldif

service apacheds restart

相关内容