こんなに簡単!SELinuxのラベルつけなおし

ファイルについているSELinuxセキュリティコンテキストのラベルがおかしいときには、修正が必要です。この作業を簡単に実施するには、どうすればよいでしょう。(さくらのVPSにインストールされているCentOSを見たときに、こういう症状に出会いました)

再起動後に自動でラベルをつけ直すように、/.autorelabel というファイルをおいておきます。ラベルをつけ直してから問題が起きてアクセスができなくなると困るので、SELinuxは一旦 permissiveモードにしておきます。それから再起動を実行します。

$ sudo touch /.autorelabel
$ 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

特に問題がないようなら、SELinuxを有効にして、設定ファイルも変更して再起動を実行します。

$ sudo /usr/sbin/setenforce 1
$ sudo /usr/sbin/getenforce 
Enforcing
$ sudo vi /etc/selinux/config
(変更分)
SELINUX=enforcing
#SELINUX=disabled
#SELINUX=permissive
$ reboot

関連書籍

同じタグの記事: SELinux
同じカテゴリの記事: General