delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

12 Feb 2022

作弊条: ldapmodify 删除项目属性

随便记一笔,备忘。

形如:

dn: mail=foo@somedomain.org,ou=somedomain.org,ou=org,ou=MailAccounts,dc=somehost
mail: foo@somedomain.org
accountstatus: alias
sn: Foo
cn: Foo account at somedomain.org
objectClass: postfixAlias
objectClass: person
maildrop: delphij@delphij.net
maildrop: someone@example.org
maildrop: someoneelse@example.edu
maildrop: anotherperson@somewhere.com

这样一个项目,希望把后三项删掉。

首先我们需要创建一个 LDIF 文件,第一行是查询条件,照抄原来的项目

dn: mail=foo@somedomain.org,ou=somedomain.org,ou=org,ou=MailAccounts,dc=somehost

接下来告诉系统修改的类型:

changetype: modify

进一步告诉它我们需要做的操作:

delete: maildrop

最后,因为该属性在这个对象上可以有多份,我们只希望删除后面三项,将其逐一列出:

maildrop: someone@example.org
maildrop: someoneelse@example.edu
maildrop: anotherperson@somewhere.com

最终:

ldapmodify -D cn=DirectoryManager,dc=somehost -w "密码" -f foo@somedomain.org.ldif -H ldapi:///

将修改应用到 LDAP 树上。

参考 ldif(5)