LinuCレベル3 303試験の例題と解説
主題327アクセス制御
327.1任意アクセス制御
LinuCレベル3 303試験の出題範囲から「327.1 任意アクセス制御」についての例題を解いてみます。
今回は、LinuxのACL機能について取り上げます。ACL機能の概要や設定方法について理解しましょう。
例題
下記のコマンドで sample.txt ファイルに対し john ユーザへ読み取り権限を与える場合、[ ] に入る適切なオプションを選びなさい。
setfacl [ ] user:john:r-- sample.txt
- -x
- -m
- -b
- -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 機能について理解しましょう。
例題作成者
株式会社デージーネット 経営企画室 加茂 智之