SELinuxの状態を確認する
結論
getenforce
またはsestatus
を実行しましょう。
状態(モード)のおさらい
SELinuxには3つの状態があります。
-
Enforcing
SELinuxが有効な状態です。読み込んだセキュリティーポリシーをシステム全体に強制します。
一般的に「SELinuxのせいで…!」「おのれ!SELinux…!」といわれる状態がこの状態です。 -
Permissive
SELinuxが有効ですが実際にはアクセス制御を行わず、ログ出力のみを行う状態です。ポリシーのデバッグ時に使用します。
システム運用する際、未来永劫SELinuxをEnforcingで運用する予定がないが、なんとなく有効にしておきたい場合にこの状態で運用ことがあるらしいですが素直にDisabledにしましょう。 -
Disabled
SELinuxが無効化されており、何のアクセス制御もされないモードです。
この時、ファイルへのラベル付けなど行われません。
SELinuxの状態を確認するいくつかの方法
SELinuxの状態は以下のコマンドで確認します。
- getenforce
- sestatus
- cat /sys/fs/selinux/enforce
getenforceコマンド
SELinuxの現在の状態を確認したい場合に使用するコマンドです。Enforcing、Permissive、Disabled を返します。
$ getenforce
Enforcing
$ getenforce
Permissive
$ getenforce
Disabled
setenforceコマンド
より詳しい状態を確認したい場合に使用するコマンドです。
現在の状態と合わせて設定ファイル上で定義されたSELinuxの状態を確認できます。
-
Current mode
現在の状態を表示します。getenforce
コマンドで取得できる状態と同じです。 -
Mode from config file
/etc/selinux/config
のSELINUX
に定義された状態を表示します。OS起動直後の状態になります。
設定に誤りがある場合はerrorと表示されます。
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive ← 現在の状態
Mode from config file: enforcing ← 設定ファイル上の状態
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
$ grep ^SELINUX= /etc/selinux/config
SELINUX=permissi
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing ← 現在の状態
Mode from config file: error (Success) ← 設定に誤りがある
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
$ sestatus
SELinux status: disabled
cat /sys/fs/selinux/enforce
SELinuxがEnforcingまたはPermissiveの場合、/sys/fs/selinux/enforce
の値は0
または1
をとります。
SELinuxがDisabledの場合、/sys/fs/selinux
ディレクトリは作成されません。
-
1
SELinuxの現在の状態がEnforcingの状態です。 -
0
SELinuxの現在の状態がPermissiveの状態です。
$ getenforce
Enforcing
$ cat /sys/fs/selinux/enforce
1
$ getenforce
Permissive
$ cat /sys/fs/selinux/enforce
0
$ getenforce
Disabled
$ cat /sys/fs/selinux/enforce
-bash: /sys/fs/selinux/enforce: No such file or directory
おわりに
よいSELinuxライフを!
Discussion
getenforceコマンドの結果がPermissvieになってます〜。多分Permissiveのtypoかと
ありがとうございます。修正しました。