Если я сделаю это, это применимо ко всем пользователям.
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
Попытался установить pwdMaxAge для существующего пользователя с помощью приведенного ниже ldif:
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
Он добавляет новый CN, если я удалю UID. но не помогает установить 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
Но, похоже, это не имеет никакого значения.
Общая ошибка «Нарушение класса объекта, атрибут« имя_атрибута »не разрешен» означает, что вы пытаетесь установить атрибут, который не определен в классах объектов, доступных для этой записи.
Другими словами, вам сначала нужно добавить ObjectClass, который предоставляет атрибут, прежде чем вы сможете его установить. Атрибут uid
предоставляется рядом различных классов объектов.
Из https://ldapwiki.com/wiki/Uid
uid
используется как ДОЛЖЕН (обязательный атрибут при использовании этого объекта class) в:
- posixAccount
- shadowAccount
- sambaSamAccount
- dicAppInfo
Используется МОЖЕТ в:
- Person
- organizationPerson
- inetOrgPerson
Но выбор и использование одного из этих объектов классы не только делают доступным 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