将Base64 LDIF文件转换为纯文本(用于导入)

时间:2017-03-30 12:21:21

标签: linux ldap base64 ldif

我有一个LDIF文件,它有一个多值的Base64编码属性,我想用非Base64编码的语法转换它。怎么办呢?

上下文

LDIF文件是这样的:

dn: cn=johndoe,ou=clients,ou=management,dc=example,dc=com
changetype: modify
replace: foobarStatus
foobarStatus:: ZW5hYmxl... (Base64 string) ...ZCA9IHRydWU

其中解码的Base64字符串是这样的:

market = "US"
mgmt.account.mode = "X12"
foo.field = "Something"
bar.field = "Something else" 
...

问题

当我尝试通过ldapmodify将此LDIF文件导入LDAP服务器时,出现错误:

ldapmodify: invalid format (line 4) entry: "cn=johndoe,ou=clients,ou=management,dc=example,dc=com"

我一直试图解决这个问题一段时间但是找不到错误。某处可能是一些虚假的角色。因此,我想到转换LDIF的Base64部分并以此格式导入它。属性值不包含任何不可打印的ASCII(例如带重音的字母),因此它应该可以正常工作。

注意

这可能是XY problem所以如果有人有另一个建议,我很想读它。

1 个答案:

答案 0 :(得分:0)

事实证明ldapmodify不喜欢长队。因此,在此处拆分Base64代码后

foobarStatus:: ZW5hYmxl... (Base64 string) ...ZCA9IHRydWU

分为79行或更少的多行,ldapmodify能够导入它。

这解决了我原来的问题。我将这个解决方案留给未来的读者。