如果我这样做,则它适用于所有用户。
ldapadd -v -H "ldaps://hostName/" -x -W -D cn=admin,dc=mydomain,dc=com -f pwdMaxAge.ldif
dn: cn=passwordDefault,ou=Policies,dc=mydomain,dc=com
changetype: modify
replace: pwdMaxAge
pwdMaxAge: 3000
尝试使用以下 ldif 为现有用户设置 pwdMaxAge:
ldapadd -v -H "ldaps://hostName/" -x -W -D cn=admin,dc=mydomain,dc=com -f pwdMaxAge_user.ldif
dn: cn=test2,ou=Users,dc=mydomain,dc=com
objectClass: device
objectClass: pwdPolicy
objectClass: top
pwdAttribute: userPassword
cn: test2
uid: test2
pwdMaxAge: 300
它给:
ldap_initialize( ldaps://hostName:636/??base )
add objectClass:
device
pwdPolicy
top
add pwdAttribute:
userPassword
add cn:
test2
add pwdMaxAge:
300
adding new entry "cn=test2,ou=Users,dc=mydomain,dc=com"
ldap_add: Object class violation (65)
additional info: attribute 'uid' not allowed
如果我删除 UID,它会添加一个新的 CN。但无助于为用户设置 pwdMaxAge。我该如何正确设置它?
编辑: 开始创建个人政策:cat ppolicy_individual.ldif
dn: cn=fin_user,ou=Policies,dc=mydomain,dc=com
objectClass: device
objectClass: pwdPolicy
cn: fin_user
pwdAttribute: userPassword
pwdMaxAge: 300
pwdInHistory: 0
pwdMaxFailure: 0
pwdLockout: FALSE
pwdMinLength: 0
pwdSafeModify: FALSE
cat pwdPolicySubentry.ldif
dn: cn=test2,ou=Users,dc=mydomain,dc=com
changetype: modify
add: pwdPolicySubentry
pwdPolicySubentry: cn=fin_user,ou=Policies,dc=mydomain,dc=com
# ldapmodify -v -H "ldaps://hostName/" -x -W -D cn=admin,dc=mydomain,dc=com -f pwdPolicySubentry.ldif
ldap_initialize( ldaps://hostName:636/??base )
add pwdPolicySubentry:
cn=fin_user,ou=Policies,dc=mydomain,dc=com
modifying entry "uid=test2,ou=Users,dc=mydomain,dc=com"
modify complete
但似乎并没有什么区别。
答案1
一般错误“对象类违规,不允许属性‘attribute_name’”意味着您试图设置该条目可用的 ObjectClasses 中未定义的属性。
换句话说,您首先需要添加提供该属性的 ObjectClass,然后才能设置它。该uid
属性由许多不同的对象类提供。
从https://ldapwiki.com/wiki/Uid
uid
在以下情况下被用作必须属性(使用该对象类时必需的属性):
- posix帐户
- 影子账户
- sambaSam帐户
- dicAppInfo
MAY 的使用范围:
- 人
- 组织人员
- inetOrgPerson
但是选择并使用其中一个 Object 类不仅会使其uid
可用,而且通常还需要设置其他属性。因此请谨慎选择
当你修改 ldif 并尝试例如 posixAccount 对象类时
dn: cn=test2,ou=Users,dc=mydomain,dc=com
objectClass: device
objectClass: pwdPolicy
objectClass: top
objectClass: PosixAccount
pwdAttribute: userPassword
cn: test2
uid: test2
pwdMaxAge: 300
您还需要设置uidNumber
, gidNumber
和homeDirectory