LinuCレベル3 303試験の例題と解説

主題327アクセス制御

327.1任意アクセス制御

LinuCレベル3 303試験の出題範囲から「327.1 任意アクセス制御」についての例題を解いてみます。
今回は、LinuxのACL機能について取り上げます。ACL機能の概要や設定方法について理解しましょう。

Linucレベル3 303試験 出題範囲


例題

下記のコマンドで sample.txt ファイルに対し john ユーザへ読み取り権限を与える場合、[ ] に入る適切なオプションを選びなさい。

setfacl [ ] user:john:r-- sample.txt
  1. -x
  2. -m
  3. -b
  4. -R

※この例題は実際の試験問題とは異なります。


解答と解説

正解は、「2. -m」です。

バージョン 2.5.46 以降の Linux カーネルには ACL機能が実装されています。ACL機能は、アクセス制御の設定をファイルやディレクトリの所有者が行う「任意アクセス制御」(Discretionary Access Control, DAC) の一種です。SELinux のようなアクセス制御の設定を管理者が行う「強制アクセス制御」(Mandatory Access Control, MAC) とは異なっています。

ACL機能では、Unix 系 OS に従来からあるパーミッション設定よりも柔軟なアクセス制御が可能となっています。パーミッションでは対象を「所有者」「グループ」「その他」の3段階で指定しますが、ACLでは特定のユーザやグループを指定して権限を与えることができます。

ACLが設定されたファイルを ls -l コマンドで見ると、パーミッション欄の末尾に + が付いています。

$ ls -l sample.txt 
-rw-r-----+ 1 dave dave 5 Jun  6 13:14 sample.txt

設定されたACLの詳細は getfacl コマンドで確認できます。

$ getfacl sample.txt 
# file: sample.txt
# owner: dave
# group: dave
user::rw-
user:john:r--
group::---
mask::r--
other::---

例題の各選択肢について解説します。

1. -x
不正解です。
-x オプションは指定した ACLを削除するのに使われます。
例えば下記のように使用します。

setfacl -x u:john sample.txt

2. -m
正解です。
-m オプションは指定したACLを設定するのに使われます。設定するACLは「user:(ユーザ名):rwx」や「group:(グループ名):rwx」のような形式で指定します。johnユーザに読み取り権限のみを与え、書き込みや実行の権限を与えない場合は、与えない権限を「-」に置き換えて「user:john:r--」と指定します。これは多くのLinuxディストリビューションでは「u:john:r」と略記することもできます。

3. -b
不正解です。
-b オプションは対象に設定されたすべてのACLを削除するのに使われます。
例えば下記のように使用します。

setfacl -b sample.txt

4. -R
不正解です。
-R オプションは -m や -x オプションと組み合わせて、ACL設定を再帰的に行うのに使われます。
例えば特定のディレクトリ以下すべてにACL設定を行うとき、下記のように使用します。

setfacl -m u:john:r -R dir1

柔軟な権限設定が可能な ACL 機能について理解しましょう。


例題作成者

株式会社デージーネット 経営企画室 加茂 智之

ページトップへ