LDIF - 如果存在则删除属性

LDIF - Delete Attribute IF Exists

我们正在使用以下 LDIF 从我们的 LDAP 目录中删除 POSIX 属性。这工作正常,除非属性不存在。例如如果 homedirectory 属性不存在,它将失败。我怎样才能做到这一点,即使没有为条目设置一个或多个属性,也会删除其余属性?

dn: uid=5,ou=people,o=company.com,o=corp
changetype: modify
delete: uidnumber
-
delete: homedirectory
-
delete: objectclass
objectclass: posixAccount
-
delete: loginshell
-
delete: unixusername
-
delete: gidnumber
-

无法在 LDIF 文件本身中执行此类逻辑。您必须将不同条目中的修改分开...

dn: uid=5,ou=people,o=company.com,o=corp
changetype: modify
delete: uidnumber

dn: uid=5,ou=people,o=company.com,o=corp
changetype: modify
delete: homeDirectory

dn: uid=5,ou=people,o=company.com,o=corp
changetype: modify
delete: loginShell

..等等。

在不提供值的情况下设置要替换的属性将在不存在时将其删除:

dn: uid=5,ou=people,o=company.com,o=corp
changetype:modify
replace: title
title: Senior Developer
-
replace: departmentNumber
-
replace: displayName
displayName: Foo

这将删除 departmentNumber 属性。