19.4.2.2. コマンドラインを使用したサブツリー/ユーザーパスワードポリシーの設定
- ns-newpwpolicy.pl スクリプトを実行して、必要な属性をサブツリーまたはユーザーエントリーに追加します。スクリプトのコマンド構文は以下のとおりです。
# ns-newpwpolicy.pl [-D rootDN] -w password | -w - | -j filename [-p port] [-h host] -U userDN -S suffixDN
サブツリーエントリーを更新するには、- S オプションを使用します。ユーザーエントリーを更新するには、- U オプションを使用します。ns-newpwpolicy.pl スクリプトは、一度に 1 つのユーザーまたはサブツリーエントリーのみを受け入れます。ただし、ユーザーと接尾辞エントリーの両方を同時に使用することも可能です。このスクリプトの詳細は、『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス を参照してください』。 - このスクリプトは、ターゲットエントリーがサブツリーまたはユーザーエントリーであるかに応じて、必要な属性を追加します。サブツリー (例: ou=people,dc=example,dc=com) では、以下のエントリーが追加されます。
- サブツリーとそのすべての子について、さまざまなパスワードポリシー関連のエントリーを保持するためのサブツリーレベルのコンテナーエントリー (
nsPwPolicyContainer
)。以下に例を示します。dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectClass: top objectClass: nsContainer cn: nsPwPolicyContainer
- サブツリーに固有のすべてのパスワードポリシー属性を保持するための実際のパスワードポリシー仕様エントリー (
nsPwPolicyEntry
) です。以下に例を示します。dn: cn="cn=nsPwPolicyEntry,ou=people,dc=example,dc=com", cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: ldapsubentry objectclass: passwordpolicy
- 上記の (
nsPwPolicyEntry
) エントリーを指定するpwdpolicysubentry
値を持つ CoS テンプレートエントリー (nsPwTemplateEntry
)。以下に例を示します。dn: cn="cn=nsPwTemplateEntry,ou=people,dc=example,dc=com", cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: costemplate objectclass: ldapsubentry cosPriority: 1 pwdpolicysubentry: cn="cn=nsPwPolicyEntry,ou=people,dc=example,dc=com", cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
- サブツリーレベルでの CoS 仕様エントリー。以下に例を示します。
dn: cn=newpwdpolicy_cos,ou=people,dc=example,dc=com objectclass: top objectclass: LDAPsubentry objectclass: cosSuperDefinition objectclass: cosPointerDefinition cosTemplateDn: cn=cn=nsPwTemplateEntry\,ou=people\,dc=example,dc=com, cn=nsPwPolicyContainer,ou=people,dc=example,dc=com cosAttribute: pwdpolicysubentry default operational
ユーザーの場合( uid=jdoe,ou=people,dc=example,dc=comなど)、以下のエントリーが追加されます。- ユーザーとそのすべての子について、さまざまなパスワードポリシー関連のエントリーを保持するための親レベルのコンテナーエントリー (
nsPwPolicyContainer
)。以下に例を示します。dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectClass: top objectClass: nsContainer cn: nsPwPolicyContainer
- ユーザーに固有のパスワードポリシー属性を保持するための実際のパスワードポリシー仕様エントリー (
nsPwPolicyEntry
) です。以下に例を示します。dn: cn="cn=nsPwPolicyEntry,uid=jdoe,ou=people,dc=example,dc=com", cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: ldapsubentry objectclass: passwordpolicy
- 上記のエントリー DN の値をターゲットエントリーの
pwdpolicysubentry
属性に割り当てます。たとえば、以下はパスワードポリシーをユーザーエントリーに割り当てます。dn: uid=jdoe,ou=people,dc=example,dc=com changetype: modify replace: pwdpolicysubentry pwdpolicysubentry: cn="cn=nsPwPolicyEntry,uid=jdoe,ou=people,dc=example,dc=com", cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
- 適切な値でサブツリーまたはユーザーエントリーのパスワードポリシー属性を設定します。表19.2「パスワードポリシー関連の属性」 には、パスワードポリシーの設定に使用できる属性が記載されています。ldapmodify ユーティリティーを使用すると、nsPwPolicyEntry オブジェクトクラスが含まれるサブツリーまたはユーザーエントリーのこれらの属性を変更できます。注記cn=config エントリーの
nsslapd-pwpolicy-local
属性は、サーバーが強制するパスワードポリシーのタイプを制御します。デフォルトでは、この属性は無効(off)です。属性が無効になると、サーバーはグローバルパスワードポリシーのみを確認し、強制します。サブツリーおよびユーザーレベルのパスワードポリシーは無視されます。ns-newpwpolicy.pl スクリプトが実行されると、最初に指定されたサブツリーおよびユーザーエントリーをチェックし、それらが存在する場合は変更します。エントリーを正常に更新した後、スクリプトはnsslapd-pwpolicy-local
設定パラメーターを on に設定します。サブツリーおよびユーザーレベルのパスワードポリシーを有効にできない場合は、スクリプトの実行後にnsslapd-pwpolicy-local
を off に設定するようにしてください。
ユーザーおよびサブツリーレベルのパスワードポリシーチェックをオフにするには、cn=config エントリーを変更して
nsslapd-pwpolicy-local
属性を off に設定します。以下に例を示します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=config changetype: modify replace: nsslapd-pwpolicy-local nsslapd-pwpolicy-local: off
この属性は、設定ファイル(
dse.ldif
)で直接変更して無効にすることもできます。
- サーバーを停止します。
# systemctl stop dirsrv.target instance
- テキストエディターで
dse.ldif
ファイルを開きます。 nsslapd-pwpolicy-local
の値を off に設定し、保存します。nsslapd-pwpolicy-local: off
- サービスを起動します。
# systemctl start dirsrv.target instance