無料Wikiサービス | デモページ
Linuxなどのメモ書き

SELinux 基本編


現在の動作モードの確認

getenforceコマンドにより確認できる。"Enforcing"ならSELinuxが有効。"Permissive"なら抑止されている。"Permissive"の場合、アクセス制御は行われないが、ログの出力は行うので調査時に便利。

# /usr/sbin/getenforce
Enforcing

表示状態
Enforcing有効
Permissive無効(ログは出力)
Disabled無効

一時的にSELinuxの動きを抑止するには

setenforceコマンドにより設定する。再度有効にする場合は引数に1を指定する。
# /usr/sbin/setenforce 0
# /usr/sbin/getenforce
Permissive

起動時の設定を変更する

/etc/sysconfig/selinuxのSELINUXのフィールドにenforcing/permissive/disabledのいずれかを設定しておけば、次回起動時にそのモードで立ち上がる。

プロセスのドメイン/ファイルのタイプの確認

psコマンドで-Zオプションや--contextオプションを指定すると「ユーザ:ロール:ドメイン」の形式で表示される。
# ps -Z
LABEL                             PID TTY          TIME CMD
user_u:system_r:unconfined_t     4814 pts/6    00:00:00 su
root:system_r:unconfined_t       4817 pts/6    00:00:00 bash
root:system_r:unconfined_t       5438 pts/6    00:00:00 adsl-connect
root:system_r:unconfined_t       5736 pts/6    00:00:00 ps

ファイルのラベルを確認する場合もlsに-Zオプションや--contextオプションを与えることで「ユーザ:ロール:タイプ」の形式で表示される。
# ls -lZ
-rw-rw-r--  tomita   tomita   user_u:object_r:user_home_t      test.pl
-rw-rw-r--  tomita   tomita   user_u:object_r:user_home_t      test.txt
-rw-rw-r--  tomita   tomita   user_u:object_r:user_home_t      test2.php

ログの調査

ログは以下のファイルに吐かれる。
/var/log/audit/audit.log

ログの中で"denied"になっているようなものがあると、SELinuxによってアクセスが拒否されたことを示す。

type=AVC msg=audit(1141465777.865:3330270): avc:  denied  {
search } for  pid=10848 comm="iiimd" name=/ dev=hda3 ino=2 
scontext=root:system_r:i18n_input_t 
tcontext=system_u:object_r:home_root_t tclass=dir

上記のログはiiimdが/にアクセスして拒否されたことを示している。scontextはプロセスのコンテキスト。tcontextはファイルのコンテキスト。




関連
SELinux ファイルタイプ設定編
SELinux ポリシー設定編


最終更新 2006/05/05 15:32:29 - kztomita
(2006/03/30 22:01:13 作成)