4.10.5. starを使用したファイルのアーカイブ
star
ユーティリティーは、デフォルトで拡張属性を保持しません。SELinux コンテキストは拡張属性に保存されるため、ファイルのアーカイブ時にコンテキストが失われる可能性があります。star -xattr -H=exustar コマンドを使用して、コンテキストを保持するアーカイブを作成します。star パッケージはデフォルトでインストールされません。star をインストールするには、root ユーザーとして yum install star を実行します。
以下の例は、SELinux コンテキストを保持する
star
アーカイブの作成を示しています。
手順4.18 star
アーカイブの作成
- root で、
/var/www/html/
に 3 つのファイル (file1
、file2
、およびfile3
) を作成します。これらのファイルは、/var/www/html/
からhttpd_sys_content_t
タイプを継承します。~]#
touch /var/www/html/file{1,2,3}~]#
ls -Z /var/www/html/ -rw-r--r-- root root unconfined_u:object_r:httpd_sys_content_t:s0 file1 -rw-r--r-- root root unconfined_u:object_r:httpd_sys_content_t:s0 file2 -rw-r--r-- root root unconfined_u:object_r:httpd_sys_content_t:s0 file3 /var/www/html/
ディレクトリーに変更します。このディレクトリーに、root で以下のコマンドを実行して、test.star
という名前のstar
アーカイブを作成します。~]$
cd /var/www/htmlhtml]#
star -xattr -H=exustar -c -f=test.star file{1,2,3} star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).- root で
test/
という名前の新規ディレクトリーを作成し、すべてのユーザーによる完全なアクセスを許可します。~]#
mkdir /test~]#
chmod 777 /test/ - 次のコマンドを実行して、
test.star
ファイルをtest/
にコピーします。~]$
cp /var/www/html/test.star /test/ test/
に移動します。このディレクトリーに移動したら、以下のコマンドを実行してstar
アーカイブを展開します。~]$
cd /test/test]$
star -x -f=test.star star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).- SELinux コンテキストを表示します。
httpd_sys_content_t
タイプはdefault_t
に変更されず、保持されています。これは、-xattr -H=exustar
オプションが使用されていなかったとしたら、変更されていたでしょう。~]$
ls -lZ /test/ -rw-r--r-- user1 group1 unconfined_u:object_r:httpd_sys_content_t:s0 file1 -rw-r--r-- user1 group1 unconfined_u:object_r:httpd_sys_content_t:s0 file2 -rw-r--r-- user1 group1 unconfined_u:object_r:httpd_sys_content_t:s0 file3 -rw-r--r-- user1 group1 unconfined_u:object_r:default_t:s0 test.star test/
ディレクトリーが必要なくなった場合は、root で以下のコマンドを実行して、そのディレクトリー内のすべてのファイルも削除します。~]#
rm -ri /test/star
が不要になった場合は、root でパッケージを削除します。~]#
yum remove star
star
の詳細は、star(1) man ページを参照してください。