設定ミスを防ぐ!SELinuxの有効化/無効化をコマンドで実行する方法

現在のステータスを確認する方法

現在のステータスは「getenforce」コマンドで確認することができます。

# getenforce
Enforcing
#

あるいは「sestat」コマンドでも確認できます。

SELinux には 3つのモードが存在します。

Enforcing有効化
Permissive監査ログだけ記録
Disabled無効化

一時的にSELinuxを有効化/無効化する方法

SELinuxを有効化する

setenforce コマンドで設定します。

# setenforce Enforcing

あるいは

# setenforce 1

SELinuxを無効化する

setenforce コマンドで設定します。

# setenforce Permissive

あるいは

# setenforce 0

設定を反映させるにはシステムを再起動する必要があります

永続的にSELinuxを有効化/無効化する方法

設定ファイル /etc/selinux/config を編集する必要があります。「SELINUX=enforcing」という箇所が修正箇所です。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

設定を反映させるにはシステムを再起動する必要があります

/etc/selinux/config を編集すればSELinuxの有効化/無効化ができるのですが、設定を間違えるとOSが起動しなくなる場合があります。

わたしはスペルミスのせいでOSが起動しなくなった経験があるので、それ以来エディタで手動編集する方法や止めています。

そこで以下のような手順で設定を変えることにしています。この方法だと実績があるので間違えることがありません。

現在の設定を確認

# 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:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31
#

現在の設定

Current mode: permissive

設定ファイルの値

Mode from config file: permissive

設定変更

disabled に変更する

sed -ie 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

enforcing に変更する

sed -ie 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config

permissive に変更する

sed -ie 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config

設定が正しく変更されていることを確認

# 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:          disabled
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31
#

現在の設定

Current mode: permissive

設定ファイルの値(変更された)

Mode from config file: disabled

上記のように「Mode from config file:」の値が変わって入れば成功です。

システム再起動する

shutdown -r now

あるいは

reboot

Linuxの場合はshutdownコマンドやrebootコマンドを実行する際にsyncをする必要はありません。

[改訂新版]プロのためのLinuxシステム構築・運用技術 (Software Design plus)

[改訂新版]プロのためのLinuxシステム構築・運用技術 (Software Design plus)

中井 悦司
3,278円(08/05 23:15時点)
Amazonの情報を掲載しています

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)