我有一个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所以如果有人有其他建议,我很想看看。

最佳答案

原来ldapmodify不喜欢排长队。因此,在这里拆分Base64代码之后

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

在79个字符或更少字符的多行中,ldapmodify能够导入它。
这解决了我原来的问题。我把解决办法留给未来的读者。

关于linux - 将Base64 LDIF文件转换为纯文本(用于导入),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43117733/

10-10 21:49
查看更多