5.10.4. tar を使ったファイルのアーカイビング


tar はデフォルトでは 拡張属性を維持しません。SELinux コンテキストは拡張属性に保存されるので、ファイルをアーカイビングするとコンテキストは失われます。tar --selinux を使ってコンテキストを維持するアーカイブを作成します。tar アーカイブが拡張属性のないファイルを含む場合システムデフォルトに拡張属性を適合させたい場合は、restorecon をアーカイブで実行します。
~]$ tar -xvf archive.tar | restorecon -f -
注記: ディレクトリーによっては、Linux root ユーザーで restorecon コマンドを実行する必要があることもあります。
以下の例では、SELinux コンテキストを保持する tar アーカイブの作成方法を説明します。
  1. Linux root ユーザーで touch /var/www/html/file{1,2,3} コマンドを実行し、3 つのファイルを作成します (file1file2file3)。これらのファイルは、/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
    
  2. cd /var/www/html/ コマンドで /var/www/html/ ディレクトリーに移動します。その後、Linux root ユーザーで tar --selinux -cf test.tar file{1,2,3} コマンドを実行し、test.tar という名前の tar アーカイブを作成します。
  3. Linux root ユーザーで mkdir /test コマンドを実行し、新規ディレクトリーを作成します。そして chmod 777 /test/ コマンドを実行し、全ユーザーに /test/ ディレクトリーへの完全アクセスを可能にします。
  4. cp /var/www/html/test.tar /test/ コマンドを実行し、test.tar ファイルを /test/ ディレクトリーにコピーします。
  5. cd /test/ コマンドを実行し、/test/ ディレクトリーに切り替え、このディレクトリー内で tar -xvf test.tar コマンドを実行して tar アーカイブを抽出します。
  6. ls -lZ /test/ コマンドで SELinux コンテキストを表示させます。httpd_sys_content_t タイプが維持されます。--selinux が使われていなければ、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.tar
    
  7. /test/ ディレクトリーが不要であれば、Linux root ユーザーで rm -ri /test/ コマンドを実行し、ディレクトリーとその中の全ファイルをを削除します。
拡張属性すべてを保持する --xattrs オプションなどの tar に関する詳細情報は、tar(1) man ページを参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.