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

327.2強制アクセス制御

LinuCレベル3 303試験の試験範囲から「327.2 強制アクセス制御」についての例題を解いてみます。
SELinuxの設定について確認しておきましょう。

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


例題

/var/run/hellodディレクトリ配下に適用されるセキュリティコンテキストのマッピングルールを調べることのできるコマンドを1つ選択してください。

  1. semanage fcontext -l | grep /var/run/hellod
  2. ls -dZ /var/run/hellod
  3. restorecon -R /var/run/hellod
  4. semanage fcontext -a -t hellod_var_run_t '/var/run/hellod(/.*)?'

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


解答と解説

正解は、「1. semanage fcontext -l | grep /var/run/hellod」です。

SELinuxを使用しているシステムでは、プロセスやファイルにセキュリティ関連の情報が付与されます。この情報をセキュリティコンテキストといいます。セキュリティコンテキストには、ユーザ識別子、ロール識別子、タイプ、レベルについての情報が含まれます。

semanageコマンドは、セキュリティコンテキストを管理するコマンドのひとつです。サブコマンドにfcontextを指定することで、ファイルのセキュリティコンテキストを管理することができます。

semanage fcontextコマンドには以下のようなオプションがあります。

-a,--add新しくコンテキストのマッピングルールを追加
-d,--deleteコンテキストのマッピングルールを削除
-m,--modifyコンテキストのマッピングルールを編集
-l,--listコンテキストのマッピングルールを一覧表示

それでは、選択肢を見ていきます。

1.semanage fcontext -l | grep /var/run/hellod
正解です。

セキュリティコンテキストのマッピングルールを確認するには、semanage fcontextコマンドに -l オプションを指定します。「semanage fcontext -l」を実行すると、SELinuxのデフォルトのマッピングルールとユーザが後から定義したマッピングルールを確認することができます。

選択肢のコマンドでは、grepコマンドを用いて「/var/run/hellod」にマッピングされるセキュリティコンテキストのみを表示するようにしています。

# semanage fcontext -l | grep /var/run/hellod
/var/run/hellod(/.*)?    all files     system_u:object_r:hellod_var_run_t:s0

なお、「/var/run/hellod(/.*)?」と記載されているルールは、/var/run/hellodディレクトリ配下のファイルは、すべて同じセキュリティコンテキストが設定されるようになっています。

2.ls -dZ /var/run/hellod
誤りです。

lsコマンドに -Z オプションを指定すると、現在設定されているセキュリティコンテキストを確認することができます。
選択肢のコマンドでは -d オプションも合わせて指定することで、ディレクトリに設定されているセキュリティコンテキストを確認することができます。

# ls -dZ /var/run/hellod
drwxr-xr-x. root root system_u:object_r:hellod_var_run_t:s0 /var/run/hellod

しかし、ディレクトリ配下に適用されるセキュリティコンテキストのマッピングルールを確認することはできないため不正解です。

3.restorecon -R /var/run/hellod
誤りです。

restoreconコマンドは、セキュリティコンテキストを反映するためのコマンドです。semanageコマンドなどで、セキュリティコンテキストのマッピングルールを追加した後に使用します。
選択肢のコマンドのように -R オプションをつけることで、指定したディレクトリ配下全てに設定したセキュリティコンテキストを反映することができます。

例題にあるセキュリティコンテキストのマッピングルールを確認することはできないため不正解です。

4.semanage fcontext -a -t hellod_var_run_t '/var/run/hellod(/.*)?'
誤りです。

semanage fcontextコマンドに -a オプションを指定すると、セキュリティコンテキストのマッピングルールを追加することができます。
選択肢のコマンドは、/var/run/hellodディレクトリ配下に hellod_var_run_t というタイプのセキュリティコンテキストをマッピングするルールを追加します。例題にあるセキュリティコンテキストのマッピングルールを確認することはできないため不正解です。

SELinuxの設定変更にはsemanageコマンド以外に、getseboolコマンド、setseboolコマンドなど様々なコマンドが用意されています。
まずは、どこのディレクトリにどのようなセキュリティ設定がされているのか、確認できるようにしておきましょう。


例題作成者

株式会社デージーネット OSS研究室 橋本 知里

ページトップへ