検索

4.10.4. tarによるファイルのアーカイブ

download PDF
tar ユーティリティーは、デフォルトで拡張属性を保持しません。SELinux コンテキストは拡張属性に保存されるため、ファイルのアーカイブ時にコンテキストが失われる可能性があります。tar --selinux コマンドを使用して、コンテキストを保持するアーカイブを作成し、アーカイブからファイルを復元します。tar アーカイブに拡張属性のないファイルが含まれる場合、または拡張属性がシステムのデフォルトと一致するようにするには、restorecon ユーティリティーを使用します。
~]$ tar -xvf archive.tar | restorecon -f -
ディレクトリーによっては、restorecon を実行するためには、root ユーザーでなければならない場合があることに注意してください。
以下の例は、SELinux コンテキストを保持する tar アーカイブの作成を示しています。

手順4.17 tar アーカイブの作成

  1. /var/www/html/ ディレクトリーに移動し、その SELinux コンテキストを表示します。
    ~]$ cd /var/www/html/
    html]$ ls -dZ /var/www/html/
    drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .
  2. root で、/var/www/html/ に 3 つのファイル (file1file2、および file3) を作成します。これらのファイルは、/var/www/html/ から httpd_sys_content_t タイプを継承します。
    html]# touch file{1,2,3}
    html]$ 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
    
  3. root で、以下のコマンドを実行して、test.tar という名前のtar アーカイブを作成します。SELinux コンテキストを維持するには、--selinux を使用します。
    html]# tar --selinux -cf test.tar file{1,2,3}
  4. root で test/ という名前の新規ディレクトリーを作成し、すべてのユーザーによる完全なアクセスを許可します。
    ~]# mkdir /test
    ~]# chmod 777 /test/
  5. test.tar ファイルを test/ にコピーします。
    ~]$ cp /var/www/html/test.tar /test/
  6. test/ ディレクトリーに移動します。このディレクトリーに移動し、以下のコマンドを実行して tar アーカイブを展開します。--selinux オプションを再度指定すると、SELinux コンテキストが default_t に変更されます。
    ~]$ cd /test/
    test]$ tar --selinux -xvf test.tar
  7. SELinux コンテキストを表示します。httpd_sys_content_t タイプは default_t に変更されず、保持されました。これは、--selinux が使用されていなかったとしたら、変更されていたでしょう。
    test]$ 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
    
  8. test/ ディレクトリーが必要なくなった場合は、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.