HOMEサンプル問題・例題解説303試験の例題と解説327.1 任意アクセス制御

303試験の例題と解説

327.1 任意アクセス制御

LinuC 303試験の試験範囲から「327.1 任意アクセス制御」についての例題を解いてみます。
ACLの利用方法を理解して、高度なアクセス制御を行えるようにしておきましょう。

■トピックの概要
このトピックの内容は以下の通りです。

<327.1 任意アクセス制御>
重要度 3

<説明>
任意アクセス制御を理解し、ACLを使用して実装する方法を知っていることが求められる。
さらに、拡張属性の使用方法を理解していることが求められる。

<主要な知識範囲>
・ファイルの所有権とアクセス権の理解と管理。SUID、SGIDを含む。
・ACLの理解と管理。
・拡張属性と属性クラスの理解と管理。


<重要なファイル、用語、ユーティリティ>
・getfacl
・setfacl
・getfattr
・setfattr


■例題
ファイル aclfile1 に、下記の条件でアクセス制限を実施します。
設定方法として正しいものをすべて選択してください。

[条件]
・ファイルの所有者はlinuc1、所有グループはlinuc1に設定されている。
・ファイルの所有者は読み書きを可能に設定する。
・linuc1グループに所属するユーザは読み書きを可能に設定する。
・linuc2グループに所属するユーザは読み込みのみ可能に設定する。
・上記以外のユーザには、読み書きともに不可に設定する。

1. chmod 664 aclfile1

2. chmod 660 aclfile1
   setfacl -m group:linuc2:r aclfile1

3. chgrp linuc1,linuc2 aclfile1
   chmod 660 aclfile1

4. setfacl -m u::rw aclfile1
   setfacl -m g::rw aclfile1
   setfacl -m o::- aclfile1
   setfacl -m g:linuc2:r aclfile1

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

解答と解説

答えは 「2」と「4」です。

Linuxでは、ファイルやディレクトリのアクセス制御を所有者・グループ・その他毎に設定することができます。
ACLを使用すると、上記に加えて、更に詳細なアクセス制御設定を行なうことができます。
例えば、
1) user1には読み込み権限を与える。
2) user2には読み書き権限を与える。
というような、詳細なアクセス制限を設定することができます。

ACLによるアクセス制御設定は、setfaclコマンドを使用します。
上記の例の通りに設定する場合、下記のようにsetfaclコマンドを実行します。

$ setfacl -m u:user1:r file1
$ setfacl -m u:user2:rw file1

ACLの確認は、getfaclコマンドを使用します。

$ getfacl -c file1
user::rw-
user:user1:r--
user:user2:rw-
group::r--
mask::rw-
other::---

user1は読み込みのみ(r--)、user2は読み書き(rw-)の権限が設定されていることがわかります。

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

1. chmod 664 aclfile1
誤っています。
linuc1グループ所属ユーザに読み書き、linuc2グループ所属ユーザに読み込み権限は与えられますが、それ以外のユーザにも読み込み権限が与えられてしまします。

2. chmod 660 aclfile1
   setfacl -m group:linuc2:r aclfile1
正しいです。
chmodコマンドで所有者と所有グループ所属ユーザにのみ読み書き権限を設定し、それに加えてsetfaclコマンドでlinux2グループ所属ユーザに読み込み権限を設定しています。

3. chgrp linuc1,linuc2 aclfile1
   chmod 660 aclfile1
誤っています。
ファイルに2つの所有グループを設定することはできません。

4. setfacl -m u::rw aclfile1
   setfacl -m g::rw aclfile1
   setfacl -m o::- aclfile1
   setfacl -m g:linuc2:r aclfile1
正しいです。
setfaclコマンドで、所有者に読み書き権限、所有グループ所属ユーザに読み書き権限、その他のユーザに権限なしを設定しています。これはchmod 660 aclfile1と同じ効果があります。
その後にsetfaclコマンドでlinux2グループ所属ユーザに読み込み権限を設定しています。

setfacl、getfaclコマンドの使用方法を確認し、ACLを適切に設定できる方法を把握しておきましょう。

■例題作成者

  • 今回の解説について、理解できないポイントがあればどんどん質問を。
  • 採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
  • ご質問・ご意見はこちら
  • ※上記の解説とその内容については、例題作成者の監修です。
    内容や試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

このページのトップへ