前回は、全体に適応するデフォルトパスワードポリシーを記述した。
今回は、パスワードポリシーをユーザ単位に適応する方法を記述する。
まず、変化がわかりやすいようにデフォルトパスワードポリシーのpwdMaxAgeを100など短い値に変更しておく。
検証に使用するユーザ
uid=test,ou=system,dc=example,dc=com
uid=test2,ou=system,dc=example,dc=com
下記のようにパスワードの有効期限が切れている状態にする。
個別にパスワードポリシーを適応した際にわかりやすくするため。
# ldapsearch -x -D "uid=test,ou=system,dc=example,dc=com" -W -b "uid=test,ou=system,dc=example,dc=com" -s base -e ppolicy Enter LDAP Password: ldap_bind: Invalid credentials (49); Password expired # ldapsearch -x -D "uid=test2,ou=system,dc=example,dc=com" -W -b "uid=test2,ou=system,dc=example,dc=com" -s base -e ppolicy Enter LDAP Password: ldap_bind: Invalid credentials (49); Password expired
*ppolicy設定方法
modifyようのファイルを作る。
今回は対象ユーザ「uid=test,ou=system,dc=example,dc=com」が、"パスワード期限切れしない"・"パスワードロックしない"ように変更を行う。
# vi test_modify.ldif dn: uid=test,ou=system,dc=example,dc=com changetype: modify add: objectClass objectClass: pwdPolicy - add: pwdPolicySubentry pwdPolicySubentry: uid=test,ou=system,dc=example,dc=com - add: pwdAttribute pwdAttribute: userPassword - add: pwdlockout pwdlockout: FALSE - add: PwdInHistory PwdInHistory: 1 - add: pwdCheckQuality pwdCheckQuality: 1 - add: pwdMaxAge pwdMaxAge: 0 - add: pwdMinAge pwdMinAge: 0
※pwdPolicySubentryが大事。これがないと認識しない。
他は、pwdPolicyのattributeを使用する。
*ppolicy適応
# ldapmodify -x -D "cn=Manager,dc=example,dc=com" -W -f test_delete.ldif modifying entry "uid=test,ou=system,dc=example,dc=com"
*ppolicy確認
# ldapsearch -x -D "uid=test,ou=system,dc=example,dc=com" -W -b "uid=test,ou=system,dc=example,dc=com" -s base -e ppolicy Enter LDAP Password: # extended LDIF # # LDAPv3 # base <uid=test,ou=system,dc=example,dc=com> with scope baseObject # filter: (objectclass=*) # requesting: ALL # # test, system, example.com dn: uid=test,ou=system,dc=example,dc=com cn: test sn: test uid: test mail: ****@aaa.com description: web description: ldap description: web_admin description: svn gidNumber: 0 homeDirectory: - uidNumber: 0 userPassword:: sdfasdfsa objectClass: inetOrgPerson objectClass: person objectClass: posixAccount objectClass: top objectClass: pwdPolicy pwdAttribute: userPassword pwdLockout: FALSE pwdInHistory: 1 pwdCheckQuality: 1 pwdMaxAge: 0 pwdMinAge: 0 # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 # ldapsearch -x -D "uid=test2,ou=system,dc=example,dc=com" -W -b "uid=test2,ou=system,dc=example,dc=com" -s base -e ppolicy Enter LDAP Password: ldap_bind: Invalid credentials (49); Password expired
デフォルトパスワードポリシのmaxage:100を越えてもパスワードの有効期限が切れないこと、パスワードを指定回数間違えてもロックされないことので、これでOK
以上。