GNU/Linux >> Linux の 問題 >  >> Linux

アクセス許可とファイル所有者を維持する圧縮/アーカイブ?

アクセス許可についても同様の質問が寄せられていることは知っていますが、各ファイルとディレクトリのアクセス許可とファイル所有者を保持する圧縮またはアーカイブの形式はどれですか?

tar.gzを検討していました フォーマットですが、これは正しいでしょうか?

37GBのファイルとディレクトリを別のサーバーに移動する必要があり、非圧縮時にすべてがまったく同じである必要があります。

承認された回答:

従来のアーカイブツールtarとcpioはどちらも、所有権とUnix権限(ユーザー/グループ/その他)、およびタイムスタンプ(cpioを使用する場合は必ず-mを渡す)を保持します。 抽出するとき)。難解な構文¹が気に入らない場合は、POSIX置換pax(pax -w -pe)を使用できます。 )これらはすべて、非圧縮のアーカイブを出力します。アーカイブをgzipなどのツールにパイプします またはxz それを圧縮します(GNU tarには圧縮を行うオプションがあります)。ユーザーとグループは名前で識別されます。 GNUtarにはオプションがあります。

これらのツールはいずれも、ACL、機能、セキュリティコンテキスト、その他の拡張属性などの最新の機能を保持していません。

一部のバージョンのtarはACLを保存できます。 ACLを保持し、ファイルをバックアップするために何を使用するかを参照してください。 GNU tarを使用して、--aclsを渡します アーカイブの作成時と抽出時の両方。

mikeservによって提案されているように、squashfsファイルシステムは、機能とSELinuxコンテキストを含む拡張属性を格納しますが、ACLは格納しません。 (古すぎないバージョンが必要です。)ACLとセキュリティコンテキストの両方がある場合は、squashfsファイルシステムを使用し、getfacl -Rを実行してACLを保存できます。 元のファイルシステムのルートで、setfacl --restoreを使用してファイルを抽出した後にそれらを復元します 。

ACL、サブセカンドタイムスタンプ、拡張属性、ファイルシステム固有の属性など、すべてを完全に保存したい場合は、ファイルシステムのクローンを作成できます。このアプローチの欠点は、圧縮されたコピーを簡単に直接書き込むことができないことです。ファイルシステムのクローンを作成する最終的な方法は、ブロックデバイスをコピーすることです。もちろん、これは空のスペースをコピーするという点で無駄です。または、すべてのファイルを保存するのに十分な大きさのファイルシステムを作成し、cp -aを使用します cpを使用 GNUcoreutilsからファイルをコピーするコマンド。 GNU cpは、拡張属性やACLなどの従来とは異なる機能を含むすべてをコピーするのに非常に優れています。

関連:テキストエディットは開いているときにHTMLファイルをRTFに変換しました–元に戻す方法は??

¹これは本当に誇張されていますが。


Linux
  1. rsync を使用してファイルとフォルダーのアクセス許可を保持する

  2. Linux ファイル セキュリティで DAC (ファイル アクセス許可)、ACL、および MAC (SELinux) はどのような役割を果たしますか?

  3. UNIX のアクセス許可とファイルの種類について

  1. コマンドラインからアクセス許可と所有者を変更する方法

  2. Linuxで.gzファイルと.tar.gzファイルを抽出する方法

  3. sshfs と書き込みファイル権限でマウントする

  1. tarおよびxzユーティリティを使用してLinuxで.xzファイル形式を解凍するにはどうすればよいですか?

  2. Linux – Unixのアクセス許可とファイルタイプを理解していますか?

  3. ファイルパーミッションにおけるユーザーとグループ所有者の優先順位?