将OpenLDAP架构转换为LDIF
时间:2020-03-21 11:49:55 来源:igfitidea点击:
我们正在将OpenLDAP服务器从Debian Squeeze迁移到Ubuntu 14.04.
Debian服务器使用slapd.conf,而Ubuntu 14.04使用slap.d。
软件
本文使用的软件:
- Ubuntu 14.04(也在Debian Wheezy上进行了测试)
- OpenLDAP 2.4.31
步骤
Ubuntu 14.04上的默认OpenLDAP安装随附以下模式:
# ldapsearch -LLLQY EXTERNAL -H ldapi:///-b cn=schema,cn=config "(objectClass=olcSchemaConfig)" dn dn: cn=schema,cn=config dn: cn={0}core,cn=schema,cn=config dn: cn={1}cosine,cn=schema,cn=config dn: cn={2}nis,cn=schema,cn=config dn: cn={3}inetorgperson,cn=schema,cn=config
我们在Debian服务器上以.schema格式提供了一些自定义模式(邮件和samba),我们需要将其转换为.ldif。
创建一个转换文件:
# cat > ./schema_conv.conf << EOL include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/misc.schema include /etc/ldap/schema/mail.schema include /etc/ldap/schema/samba.schema EOL
将模式文件转换为LDIF:
# mkdir /tmp/ldif # slaptest -f ./schema_conv.conf -F /tmp/ldif/
打开“ /tmp/ldif/cn=config/cn=schema/cn={5}mail.ldif”文件,然后更改以下几行:
dn: cn={5}mail objectClass: olcSchemaConfig cn: {5}mail
至:
dn: cn=mail,cn=schema,cn=config objectClass: olcSchemaConfig cn: mail
同时删除底部的这些行:
structuralObjectClass: olcSchemaConfig entryUUID: d53d1a8c-4261-1034-9085-738a9b3f3783 creatorsName: cn=config createTimestamp: 20140206153742Z entryCSN: 20140206153742.072733Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20140206153742Z
对samba LDIF文件执行相同的操作。
将文件复制到“/etc/ldap/schema”目录:
# cd /etc/ldap/schema # cp /tmp/ldif/cn\=config/cn\=schema/cn\=\{5\}mail.ldif ./mail.ldif # cp /tmp/ldif/cn\=config/cn\=schema/cn\=\{6\}samba.ldif ./samba.ldif
将新架构插入LDAP树:
# ldapadd -Q -Y EXTERNAL -H ldapi:///-f /etc/ldap/schema/misc.ldif # ldapadd -Q -Y EXTERNAL -H ldapi:///-f /etc/ldap/schema/mail.ldif # ldapadd -Q -Y EXTERNAL -H ldapi:///-f /etc/ldap/schema/samba.ldif
我们也可以通过以下方式进行操作:
# ldapadd -Q -Y EXTERNAL -H ldapi:////tmp/ldif_output/cn\=config/cn\=schema/cn\=\{5\}mail.ldif # ldapadd -Q -Y EXTERNAL -H ldapi:////tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}samba.ldif
确认:
# ls -1 /etc/ldap/slapd.d/cn\=config/cn\=schema cn={0}core.ldif cn={1}cosine.ldif cn={2}nis.ldif cn={3}inetorgperson.ldif cn={4}misc.ldif cn={5}mail.ldif cn={6}samba.ldif