Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.10.2. ファイルとディレクトリーの移動

ファイルおよびディレクトリーは、移動時に現在の SELinux コンテキストを保持します。多くの場合、これは移動先の場所として正しくありません。以下の例は、ユーザーのホームディレクトリーから、Apache HTTP サーバーが使用する /var/www/html/ ディレクトリーにファイルを移動する方法を示しています。ファイルは移動されるため、正しい SELinux コンテキストは継承されません。

手順4.15 ファイルとディレクトリーの移動

  1. ホームディレクトリーに移動し、そこでファイルを作成します。ファイルには、user_home_t タイプのラベルが付けられます。
    ~]$ touch file1
    ~]$ ls -Z file1
    -rw-rw-r--  user1 group1 unconfined_u:object_r:user_home_t:s0 file1
    
  2. 以下のコマンドを入力して、/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/ に作成されたファイルおよびディレクトリーは、このタイプを継承します。
  3. root で 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 が読み取れない別のタイプの場合、Mozilla Firefox などの Web ブラウザーを使用してそれらにアクセスしようとすると、パーミッションが拒否されます。
重要
mv コマンドでファイルやディレクトリーを移動すると、SELinux コンテキストが正しくなくなり、Apache HTTP サーバーや Samba などのプロセスがそのようなファイルやディレクトリーにアクセスできなくなる可能性があります。