Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

18.13.3. ブール演算子を使用したバインドルールの組み合わせ

複雑なバインドルールを作成する場合は、ANDOR、および NOT のブール値演算子を使用すると、複数のキーワードを組み合わせることができます。
バインドルールとブール演算子を組み合わせた構文は以下の通りです。
bind_rule_1 boolean_operator bind_rule_2...

例18.36 ブール演算子を使用したバインドルールの組み合わせ

cn=Administrators,ou=Groups,dc=example,com および cn=Operators,ou=Groups,dc=example,com の両方のグループのメンバーであるユーザーが、ou=People,dc=example,dc=com のエントリーを読み取り、検索、追加、更新、および削除できるように設定するには、次のコマンドを実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (target="ldap:///ou=People,dc=example,dc=com") (version 3.0;
 acl "Allow members of administrators and operators group to manage users";
 allow (read, search, add, write, delete)
 groupdn = "ldap:///cn=Administrators,ou=Groups,dc=example,com" AND
 groupdn = "ldap:///cn=Operators,ou=Groups,dc=example,com";)

Directory Server によるブール値演算子の評価方法

Directory Server は以下のルールを使用してブール値演算子を評価します。
  • 左から右へのすべての式。
    以下の例では、bind_rule_1 が最初に評価されます。
    (bind_rule_1) OR (bind_rule_2)
  • 一番内側から外側に向かって、親表現が優先されます。
    以下の例では、bind_rule_2 を最初に評価し、次に bind_rule_3 を評価します。
    (bind_rule_1) OR ((bind_rule_2) AND (bind_rule_3))
  • AND または OR 演算子の前に NOT
    以下の例では、bind_rule_2 が最初に評価されます。
    (bind_rule_1) AND NOT (bind_rule_2)
AND および OR 演算子には優先順位がありません。