CentOS7でSELinuxを無効にする

2019年8月3日

SELinuxはOS上の細かいアクセス制御を可能とするカーネルの制御機能の一つですが、このアクセス制御が作用してアプリケーションが思ったように動作しないことが多々あります。
そのため、SELinuxを無効にしておきます。

SElinuxが有効かどうか調べる

# getenforce
Enforcing
  • Enforcing SELinuxが有効でアクセス制御も有効な状態
  • Permissive アクセス制御は無効だがワーニングを表示する
  • Disabled SELinuxが無効

もっと詳しく情報が知りたいときは

# 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:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

SELinuxの状態を一時的に変更する

状態をPermissiveへ変更

# setenforce 0

状態をEnforcingへ変更

# setenforce 1

これらの状態変更はOSを再起動すると元に戻ります。

SELinuxの状態を永続的に変更する

SELinuxの状態を永続的に変更するにはSELinunの設定ファイルを編集します。

# vi /etc/selinux/config
# 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 three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

「SELINUX=enforcing」の右辺の値を編集することで状態を変更できます。

  • Enforcingの場合 SELINUX=enforcing
  • Permissiveの場合 SELINUX=permissive
  • Disabledの場合 SELINUX=diabled

設定ファイルの修正後にOSを再起動することで設定が有効になります。

※注意

設定ファイルの「SELINUXTYPE=targeted」を誤って変更しないように気を付けてください。
カーネルパニックを起こしてOSが起動できなくなります。