Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
5.10.5. star を使ったファイルのアーカイビング
star
は、デフォルトでは拡張属性を維持しません。SELinux コンテキストは拡張属性に保存されるので、ファイルをアーカイビングするとコンテキストは失われます。star -xattr -H=exustar
を使ってコンテキストを維持するアーカイブを作成します。star パッケージはデフォルトではインストールされません。star
をインストールするには、yum install star
コマンドを Linux root ユーザーで実行します。
以下の例では、SELinux コンテキストを保持する Star アーカイブの作成方法を説明します。
- Linux root ユーザーで
touch /var/www/html/file{1,2,3}
コマンドを実行し、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 cd /var/www/html/
コマンドで/var/www/html/
ディレクトリーに移動します。その後、Linux root ユーザーでstar -xattr -H=exustar -c -f=test.star file{1,2,3}
コマンドを実行し、test.star
という名前の Star アーカイブを作成します。~]#
star -xattr -H=exustar -c -f=test.star file{1,2,3}
star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).- Linux root ユーザーで
mkdir /test
コマンドを実行し、新規ディレクトリーを作成します。そしてchmod 777 /test/
コマンドを実行し、全ユーザーに/test/
ディレクトリーへの完全アクセスを可能にします。 cp /var/www/html/test.star /test/
コマンドを実行し、test.star
ファイルを/test/
ディレクトリーにコピーします。cd /test/
コマンドを実行し、/test/
ディレクトリーに切り替え、このディレクトリー内でstar -x -f=test.star
コマンドを実行して Star アーカイブを抽出します。~]$
star -x -f=test.star
star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).ls -lZ /test/
コマンドで SELinux コンテキストを表示させます。httpd_sys_content_t
タイプが維持されます。-xattr -H=exustar
が使われていなければ、default_t
に変更されます。~]$
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/
ディレクトリーが不要であれば、Linux root ユーザーでrm -ri /test/
コマンドを実行し、ディレクトリーとその中の全ファイルをを削除します。star
が不要であれば、Linux root ユーザーでyum remove star
コマンドを実行し、パッケージを削除します。
star
についての詳細は、star(1) の man ページを参照してください。