我正在运行带有模块 back_ldap 的 OpenLDAP 2.4.44 作为 MS-AD-Servers 的 LDAP 代理(有关详细信息,请参阅:openLDAP 作为 Active Directory 的代理)。
现在我需要将模式从 AD 服务器添加到 OpenLDAP 服务器,并且我已使用 ldapsearch 将模式从 MS-AD 服务器导出到 ldif 文件中(有关详细信息,请参阅:如何从服务器获取架构信息?)。
现在我需要将 ldif 格式转换为 OpenLDAP slapd.conf 的架构格式。无法使用 ldapadd 加载 ldif,因为 OpenLDAP 以代理模式运行,因此每个请求都将转发到 MS-AD 服务器。
如何将 ldif 文件转换为模式文件?有没有什么工具?或者如何添加要通过 slapd.conf 加载的 ldif 文件。
答案1
您需要做的是删除属性dn
,cn
和,并分别用和objectClass
替换所有出现的olcAttributeTypes:
和。olcObjectClasses:
attributetype
objectclass
您也可以通过 shell 来完成此操作。
Linux shell 上的一行程序:
sed '/^dn: /d;/^objectClass: /d;/^cn: /d;s/olcAttributeTypes:/attributetype/g;s/olcObjectClasses:/objectclass/g' file.ldif > file.schema
windows powershell中对应命令:
Get-Content file.ldif | Where { $_ -notmatch "^dn: " } | Where { $_ -notmatch "^objectClass: " } | Where { $_ -notmatch "^cn: " } | %{ $_ -replace "olcObjectClasses:", "objectclass" } | %{ $_ -replace "olcAttributeTypes:", "attributetype" } | Out-File file.schema