搜索并替换 ldap 属性

搜索并替换 ldap 属性

我在 LDAP 服务器中拥有大量数据。有些属性出现在很多地方,我想替换它们。

数据不是很大,但足以排除手动编辑和导出。

最好的方法是什么?使用 LDAP 工具查找并替换它们?编写脚本来修改条目?导出数据并在本地编辑?

任何的意见都将会有帮助。

答案1

假设您可以找到所有条目的 dn,其中这些属性用类似的内容替换ldapsearch '(attribute=value)' |grep ^dn,然后为每个条目创建一个ldapmodify脚本,因此,使用一点 Python:

from subprocess import Popen, PIPE

input=('searchoutput.txt')
for line in input:
    dn = line.rstrip().split()[1]
    modify_str = line
    modify_str += 'changetype: modify\nreplace: attribute\nattribute: newvalue'
    lm = Popen('ldapmodify <various args>', shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)
    (out, err) = lm.communicate(modify_str)
    if lm.wait() != 0:
        sys.stderr.write('ldapmodify of {0} failed:\n{1}'.format(dn, err))

即,对于每个需要修改的条目,生成一个条款,说明:

dn: MyEntryCN
changetype: modify
replace: attribute
attribute: newvalue

并将其提供给ldapmodify(使用相关的身份验证等命令行参数)。

相关内容