18.13.3. ブール演算子を使用したバインドルールの組み合わせ
複雑なバインドルールを作成する場合は、AND、OR、および 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 演算子には優先順位がありません。