ファイルについているSELinuxセキュリティコンテキストのラベルがおかしいときには、修正が必要です。この作業を簡単に実施するには、どうすればよいでしょう。(さくらのVPSにインストールされているCentOSを見たときに、こういう症状に出会いました)
再起動後に自動でラベルをつけ直すように、/.autorelabel というファイルをおいておきます。ラベルをつけ直してから問題が起きてアクセスができなくなると困るので、SELinuxは一旦 permissiveモードにしておきます。それから再起動を実行します。
$ sudo touch /.autorelabel
$ sudo vi /etc/selinux/config
(変更分)
#SELINUX=disabled
SELINUX=permissive
$ reboot
$ sudo vi /etc/selinux/config
(変更分)
#SELINUX=disabled
SELINUX=permissive
$ reboot
再起動すると起動中にラベルが再付与されます。ログインしてPermissiveモードになっているのを確認します。例えば、/var/www/ あたりが正しいラベルになっていることを確認すると良いでしょう。
$ sudo /usr/sbin/getenforce
Permissive
$ ls -alZ /var/www/
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 .
drwxr-xr-x root root system_u:object_r:var_t:s0 ..
drwxr-xr-x root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 error
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 html
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 icons
drwxr-xr-x apache apache system_u:object_r:httpd_sys_content_t:s0 sites
Permissive
$ ls -alZ /var/www/
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 .
drwxr-xr-x root root system_u:object_r:var_t:s0 ..
drwxr-xr-x root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 error
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 html
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 icons
drwxr-xr-x apache apache system_u:object_r:httpd_sys_content_t:s0 sites
特に問題がないようなら、SELinuxを有効にして、設定ファイルも変更して再起動を実行します。
$ sudo /usr/sbin/setenforce 1
$ sudo /usr/sbin/getenforce
Enforcing
$ sudo vi /etc/selinux/config
(変更分)
SELINUX=enforcing
#SELINUX=disabled
#SELINUX=permissive
$ reboot
$ sudo /usr/sbin/getenforce
Enforcing
$ sudo vi /etc/selinux/config
(変更分)
SELINUX=enforcing
#SELINUX=disabled
#SELINUX=permissive
$ reboot
関連書籍