SELinuxとは
Security Enhanced Linuxの略称。
SELinuxを利用するとサービス毎に最小限の権限を与えて管理するなど細かいアクセス制御が可能になる。
nginx等で権限設定できてるのに Permission denied
とかなるとSELinuxが原因であることが多いです。セキュリティポリシーを個別に設定もできますが今回は無効化する方法をご紹介します。
SELinuxの設定確認
# getenforce
Enforcing
-
Enforcing
SELinuxは有効で、アクセス制限も有効 -
Permissive
SELinuxは有効だが、アクセス制限は行わず警告を出力 -
Disabled
SELinux機能は無効
デフォルトは Enforcing
となっている
一時的な変更
OSを再起動すると設定は元に戻ります。
一時的に無効化する
# setenforce 0
Permissive
になる。 Disabled
にはできない。
一時的に有効化する
# setenforce 1
Enforcing
になる。
永続的な変更
設定ファイルを /etc/selinux/config
書き換えます。
OSを再起動すると設定が反映されます。
永続的に無効化する
# sed -i 's/SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config
# reboot
永続的に有効化する
# sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# reboot