過去問ドリル

LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問1

アクセスおよび権限制御の強化/Linux Access Control Lists によるアクセス制御

名前付きユーザーのエントリ(user:alice:rwx)を含むアクセスACLが設定されたファイルに対して、chmod g-w を実行した。このときの動作として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)

正解:B

解説

マスク(mask)エントリを持つACLでは、ls -lやchmodが扱うグループのパーミッションビットは所有グループではなくマスクエントリに対応します。そのためchmod g-wはマスクから書き込み権を外します。マスクは名前付きユーザー・名前付きグループ・所有グループの各エントリに対する上限として働くので、user:alice:rwxのエントリ自体は残っていても、getfaclでは「#effective:r-x」のように実効権限が絞られて表示されます。ACLエントリを消したい場合はsetfacl -xや-bを使います。

選択肢ごとの解説

  • A誤り。マスクを持つACLでは、グループのパーミッションビットはマスクエントリに対応するため、chmodで変わるのはマスクです。所有グループのエントリだけを変えるにはsetfacl -m g::r-x のように指定します。
  • B正しい。chmodのグループビットはマスクに反映され、マスクが名前付きエントリと所有グループの実効権限の上限になります。
  • C誤り。ACLを持つファイルでもchmodは有効で、パーミッションビットに対応するACLエントリ(所有者・マスク・その他)が書き換わります。
  • D誤り。chmodは拡張ACLのエントリを削除しません。すべての拡張エントリを消すのはsetfacl -b(--remove-all)です。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く