Red Hat Training

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

5.10.2. ファイルおよびディレクトリーの移動

ファイルおよびディレクトリーは、移動されると現行の SELinux コンテキストを維持します。多くの場合、これは移動先の場所で誤ったものとなります。以下の例では、ユーザーのホームディレクトリーから Apache HTTP Server が使用する /var/www/html/ に移動します。ファイルは移動されたため、正しい SELinux コンテキストを継承しません。
  1. 変更の引数なしで cd コマンドを実行し、ホームディレクトリーへ移動します。そして touch file1 コマンドでファイルを作成します。このファイルは、user_home_t タイプでラベル付けされます。
    ~]$ ls -Z file1
    -rw-rw-r--  user1 group1 unconfined_u:object_r:user_home_t:s0 file1
    
  2. 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/ ディレクトリー下のファイルおよびディレクトリーはこのタイプを継承するので、それらのファイルおよびディレクトリーはこのタイプでラベル付けされます。
  3. 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 などのプロセスがそれらのファイルやディレクトリーにアクセスできなくなる可能性があります。