5.10.2. ファイルおよびディレクトリーの移動
ファイルおよびディレクトリーは、移動されると現行の SELinux コンテキストを維持します。多くの場合、これは移動先の場所で誤ったものとなります。以下の例では、ユーザーのホームディレクトリーから Apache HTTP Server が使用する
/var/www/html/
に移動します。ファイルは移動されたため、正しい SELinux コンテキストを継承しません。
- 変更の引数なしで
cd
コマンドを実行し、ホームディレクトリーへ移動します。そしてtouch file1
コマンドでファイルを作成します。このファイルは、user_home_t
タイプでラベル付けされます。~]$
ls -Z file1
-rw-rw-r-- user1 group1 unconfined_u:object_r:user_home_t:s0 file1 ls -dZ /var/www/html/
コマンドを実行し、/var/www/html/
ディレクトリーの SELinux コンテキストを表示します。~]$
ls -dZ /var/www/html/
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/デフォルトでは、/var/www/html/
ディレクトリーはhttpd_sys_content_t
タイプでラベル付けされます。/var/www/html/
ディレクトリー下のファイルおよびディレクトリーはこのタイプを継承するので、それらのファイルおよびディレクトリーはこのタイプでラベル付けされます。- Linux root ユーザーで
mv file1 /var/www/html/
コマンドを実行し、file1
を/var/www/html/
ディレクトリーに移動します。このファイルは移動されたので、現行のuser_home_t
タイプを維持します。~]#
mv file1 /var/www/html/
~]#ls -Z /var/www/html/file1
-rw-rw-r-- user1 group1 unconfined_u:object_r:user_home_t:s0 /var/www/html/file1
デフォルトでは、Apache HTTP Server は
user_home_t
タイプでラベル付けされたファイルを読み取れません。Web ページを構成するすべてのファイルが user_home_t
タイプ、もしくは Apache HTTP Server が読み取り不可能な別のタイプでラベル付けされている場合、それらに Firefox もしくはテキストベースの Web ブラウザ経由でアクセスしようとすると、パーミッションは拒否されます。
重要
ファイルやディレクトリーを
mv
コマンドで移動すると、誤った SELinux コンテキストとなり、Apache HTTP Server や Samba などのプロセスがそれらのファイルやディレクトリーにアクセスできなくなる可能性があります。