LinuCレベル2 ネットワーククライアントの管理 問28
ネットワーククライアントの管理/LDAPクライアントの利用方法ldapsearchで、objectClassがinetOrgPersonであり、かつcn(共通名)が「yama」で始まるエントリだけを検索したい。検索フィルタとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「ネットワーククライアントの管理」に対応。実際の試験問題ではありません)
- A(|(objectClass=inetOrgPerson)(cn=yama*))
- B(&(objectClass=inetOrgPerson)(!(cn=yama*)))
- C(&(objectClass=inetOrgPerson)(cn=*yama))
- D(&(objectClass=inetOrgPerson)(cn=yama*))
正解:D
解説
LDAPの検索フィルタは、演算子を先頭に置く前置記法で書きます。「かつ」は &、「または」は |、否定は ! で、それぞれ括弧で囲んだ条件を後ろに並べます。「〜で始まる」はアスタリスクを末尾に置いて cn=yama* のように書きます。ldapsearch では、ldapsearch -x -b "dc=example,dc=com" "(&(objectClass=inetOrgPerson)(cn=yama*))" のように、オプションの後にフィルタを引数として渡します。
選択肢ごとの解説
- A誤り。| は「または」を表すため、inetOrgPersonのエントリか、cnがyamaで始まるエントリのどちらかに当てはまれば一致してしまいます。
- B誤り。! で否定しているため、cnがyamaで始まらないinetOrgPersonのエントリを検索するフィルタになります。
- C誤り。*yama はアスタリスクが先頭にあるため、cnが「yama」で終わるエントリに一致します。
- D正しい。& で2つの条件の両方を満たすことを表し、cn=yama* でcnがyamaで始まるエントリに限定しています。