9.2. コマンドラインを使用した Referential Integrity プラグインの設定

コマンドラインを使用して Referential Integrity プラグインを設定できます。

この手順は、レプリケーショントポロジー内のすべてのサプライヤーで実行してください。

手順

  1. Referential Integrity プラグインを有効にします。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity enable
  2. プラグインがユーザーエントリーの削除または名前変更操作を検索するサブツリーを設定します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --entry-scope "ou=People,dc=example,dc=com"
  3. オプション: エントリースコープでサブツリーを除外します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --exclude-entry-scope "ou=Special Users,ou=People,dc=example,dc=com"

    このコマンドは、ou=Special Users,ou=People,dc=example,dc=com サブツリーで実行される削除または名前変更操作を無視するようにプラグインを設定します。

  4. プラグインがグループエントリーを更新するサブツリーを設定します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --container-scope "ou=Groups,dc=example,dc=com"
  5. デフォルトでは、プラグインは memberuniqueMemberowner、および seeAlso 属性の整合性更新を実行します。他の属性を指定するには、次のように入力します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --membership-attr attribute_1 attribute_2

    このコマンドは、プラグインの設定内の属性のリストをオーバーライドすることに注意してください。属性を追加する場合は、現在の属性リストと追加の属性リストを --membership-attr オプションに渡します。

  6. オプション: デフォルトでは、Directory Server は参照整合性チェックを即座に実行します。遅延を設定する場合は、次のように入力します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --update-delay=5

    このコマンドは、参照整合性チェックを 5 秒遅延させます。複数のサプライヤーで Referential Integrity を有効にした場合、遅延を設定するとレプリケーションループやディレクトリーの不整合が発生する可能性があることに注意してください。このような問題を回避するには、トポロジー内の 1 つのサプライヤーでのみプラグインを有効にします。

  7. インスタンスを再起動します。

    # dsctl instance_name restart

検証

  1. Referential Integrity プラグインの設定を表示します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity show
    ...
    nsslapd-plugincontainerscope: ou=Groups,dc=example,dc=com
    nsslapd-pluginentryscope: ou=People,dc=example,dc=com
    ...
    referint-membership-attr: member
    referint-membership-attr: uniquemember
    referint-membership-attr: owner
    referint-membership-attr: seeAlso
    referint-update-delay: 0
    ...
  2. グループの member 属性を表示して、グループのメンバーをリストします。

    # ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=Groups,dc=example,dc=com" member
    ...
    member: uid=demoUser,ou=People,dc=example,dc=com
  3. uid=demoUser,ou=People,dc=example,dc=com ユーザーを削除します。

    # dsidm -D "cn=Directory manager" ldap://server.example.com -b "dc=example,dc=com" user delete "uid=demoUser,ou=People,dc=example,dc=com"
  4. グループのメンバーを再度表示します。

    # ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=People,dc=example,dc=com" member

    uid=demoUser,ou=People,dc=example,dc=com が グループのメンバーとしてリストされなければ、Referential Integrity プラグインは機能しています。