我正在CentOS 7上运行openLDAP服务器版本2.4.40。LDAP将使用联机conf选项(olc)进行configuration。 感谢这个问题 ,我知道slapd的数据库文件在/var/lib/ldap 。
我试图在Linux机器上运行一个openLDAP服务器作为只读操作系统分区和另一个持久数据分区。 我将能够在操作系统分区上安装和configurationopenLDAP,但configuration之后会失去访问权限。
问:是否可以更改位置LDAP将数据从/ var / lib / ldap读取/写入永久数据分区的某处?
我曾经在每次新安装后移动openldap的默认数据库。
我想要移动数据库的步骤:
slapcat在一个LDIF文件中的cn=config分支的内容 /var/lib/ldap目录复制到您想要的任何位置 openldap拥有新的目录和里面的所有文件 olcDbDirectory修改为新的位置 slapadd -F /etc/ldap/slapd.d -b cn=config -l /path/to/file/file.ldif (在执行此操作之前,确保/etc/ldap/slapd.d为空) 确保/etc/ldap/slapd.d及其所有内容属于openldap
编辑需要的configuration以允许Slapd使用这个新的数据库目录
例如,使用apparmor编辑文件/etc/apparmor.d/usr.sbin.slapd并添加以下行
/path/to/new/db/ r, /path/to/new/db/** rwk,
通常它是诀窍。 这也是我如何备份我的openldap实例的configuration。
我分两部分来读你的问题:
/var/lib/ldap 虽然我怀疑#2是可能的,但我没有足够的OpenLDAP直接经验来直接解决这个问题。 我能做的是为#1build议一个替代解决scheme。 通过mount命令和fstab ,在/var/lib/ldap上挂载一个差异磁盘分区是很简单的。 这应该有效地实现你的目标,无论OpenLDAP是否本身处理。 您也可以使用符号链接将/var/lib/ldap文件夹replace为所需的位置。 同样,这绕过了OpenLDAP以及任何内置或不内置于该项目的支持。
最后,你还应该考虑保留某些日志区域的写权限。 以上段落中的技术也可以用于移动日志文件位置。
Openldap似乎不支持在创build数据库,数据库和文件之后移动它。 Openldap目前不支持删除数据库文件。
可以创build一个新的DB文件,并将其olcDbDirectory属性定义为另一个分区上的path。
dn: olcDatabase=bdb,cn=config objectClass: olcBdbConfig olcDatabase: bdb olcDbDirectory: /partition/db/new-db-file olcSuffix: dc=example,dc=net
在ch中find的信息6.1.1.4.5 使用OLC添加/删除数据库