Presumivelmente, você pode encontrar todos os dn's para entradas onde esses atributos substituem por algo como ldapsearch '(attribute=value)' |grep ^dn
e, em seguida, para cada entrada, criar um script ldapmodify
, portanto, usando um pouco de 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))
Ou seja. Para cada entrada que você precisa modificar, gere uma cláusula que indique:
dn: MyEntryCN
changetype: modify
replace: attribute
attribute: newvalue
e alimente isso para ldapmodify
(com a autenticação relevante, argumentos de linha de comando etc).