대부분의 배포에서 새 계정에 적용할 비밀번호 정책은 설정된 계정에 적용할 비밀번호 정책과 다릅니다. 이 절에서는 첫 번째 로그인 비밀번호 정책에 대해 설명합니다. 이 정책은 사용자에게 새로 만든 계정을 3일 동안 사용하여 계정이 잠기기 전에 새 비밀번호를 설정할 수 있도록 허용합니다. 이 정책은 비밀번호를 재설정한 사용자의 경우와 동일하게 적용됩니다.
DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.
새로 만든 계정에 대해 특수 비밀번호 정책을 만듭니다.
예를 들어 만료 시간을 3일(259,200초)로 설정하는 비밀번호 정책 항목을 추가합니다. 또한 이 비밀번호 정책에서는 pwdMustChange(5dsat)가 TRUE로 설정되어 있습니다. 즉, 사용자가 처음 바인드할 때 비밀번호를 변경해야 합니다.
$ cat firstLogin.ldif dn: cn=First Login,dc=example,dc=com objectClass: top objectClass: LDAPsubentry objectClass: pwdPolicy objectClass: sunPwdPolicy cn: First Login passwordStorageScheme: SSHA pwdAttribute: userPassword pwdInHistory: 0 pwdExpireWarning: 86400 pwdLockout: TRUE pwdMinLength: 6 pwdMaxFailure: 3 pwdMaxAge: 259200 pwdFailureCountInterval: 600 pwdAllowUserChange: TRUE pwdLockoutDuration: 3600 pwdMinAge: 0 pwdCheckQuality: 2 pwdMustChange: TRUE $ ldapmodify -a -D cn=admin,cn=Administrators,cn=config -w - -f firstLogin.ldif Enter bind password: adding new entry cn=First Login,dc=example,dc=com $ |
새로 만든 모든 계정을 포함하는 역할을 만듭니다.
이 역할을 만들 때 새로 만든 계정을 설정된 계정과 구분하는 몇 가지 방법을 설정합니다.
새 계정의 pwdReset(5dsat) 속성을 TRUE로 설정합니다.
비밀번호 관리자와 같은 다른 사용자가 사용자의 비밀번호를 변경하면 pwdReset이 TRUE로 설정됩니다.
새 계정을 식별하는 역할을 만듭니다.
예를 들어 다음 명령은 비밀번호를 재설정한 계정에 대한 역할을 만듭니다.
$ cat newRole.ldif dn: cn=First Login Role,ou=people,dc=example,dc=com objectclass: top objectclass: LDAPsubentry objectclass: nsRoleDefinition objectclass: nsComplexRoleDefinition objectclass: nsFilteredRoleDefinition cn: First Login Role nsRoleFilter: (pwdReset=TRUE) description: Role to assign password policy for new and reset accounts $ ldapmodify -a -D uid=kvaughan,ou=people,dc=example,dc=com -w - -f newRole.ldif Enter bind password: adding new entry cn=First Login Role,ou=people,dc=example,dc=com $ |
서비스 클래스를 사용하여 새로 만든 계정에 대한 비밀번호 정책을 할당합니다.
$ cat newCoS.ldif dn: cn=First Login Template,dc=example,dc=com objectClass: top objectClass: nsContainer dn: cn="cn=First Login Role,ou=people,dc=example,dc=com", cn=First Login Template,dc=example,dc=com objectClass: top objectClass: extensibleObject objectClass: LDAPSubEntry objectClass: CoSTemplate cosPriority: 1 pwdPolicySubentry: cn=First Login,dc=example,dc=com dn: cn=First Login CoS,dc=example,dc=com objectClass: top objectClass: LDAPSubEntry objectClass: CoSSuperDefinition objectClass: CoSClassicDefinition cosTemplateDN: cn=First Login Template,dc=example,dc=com cosSpecifier: nsRole cosAttribute: pwdPolicySubentry operational $ ldapmodify -a -D uid=kvaughan,ou=people,dc=example,dc=com -f newCoS.ldif Enter bind password: adding new entry cn=First Login Template,dc=example,dc=com adding new entry cn="cn=First Login Role,ou=people,dc=example,dc=com", cn=First Login Template,dc=example,dc=com adding new entry cn=First Login CoS,dc=example,dc=com $ |
추가한 역할에 맞는 새 사용자를 추가합니다. 사용자를 추가하여 새 비밀번호 정책이 새 사용자에게는 적용되고 기존 사용자에게는 적용되지 않는지를 확인합니다.
$ cat quentin.ldif dn: uid=qcubbins,ou=People,dc=example,dc=com objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson uid: qcubbins givenName: Quentin sn: Cubbins cn: Quentin Cubbins mail: quentin.cubbins@example.com userPassword: ch4ngeM3! description: New account $ ldapmodify -a -D uid=kvaughan,ou=people,dc=example,dc=com -w - -f quentin.ldif Enter bind password: adding new entry uid=qcubbins,ou=People,dc=example,dc=com $ ldapsearch -D uid=kvaughan,ou=people,dc=example,dc=com -w - \ -b dc=example,dc=com uid=qcubbins nsrole pwdPolicySubentry Enter bind password: version: 1 dn: uid=qcubbins,ou=People,dc=example,dc=com nsrole: cn=first login role,ou=people,dc=example,dc=com pwdPolicySubentry: cn=First Login,dc=example,dc=com $ ldapsearch -b dc=example,dc=com uid=bjensen nsrole pwdPolicySubentry version: 1 dn: uid=bjensen, ou=People, dc=example,dc=com $ |
Barbara Jensen의 기존 계정에는 기본 비밀번호 정책이 적용됩니다. 그러나 Quentin Cubbins의 새 계정에는 정의된 비밀번호 정책이 적용됩니다.