ユーザーを保存せずにtar

ユーザーを保存せずにtar

httpデプロイのためにいくつかのファイルを圧縮したいのですが、.tar.gzユーザー名とユーザーIDが保存されていますが、これを行わない方法はないようです。 (tarには--numeric-ownerユーザー名を無視しているように見えますが、まだユーザーIDを保持するオプションがあります。)

.tar.gz私のシステムは、私のユーザーIDとユーザー名を持つ唯一のシステムである可能性があるため、ファイルの配布には悪い選択肢です。ファイル配布にはより良い形式がありますか.7z?それとも他の提案はありますか?

答え1

通常、.tar.gz は利用可能なファイル配布形式です。 GNU tarを使用すると、所有権と権限を保存できません。

$ tar -c -f archive.tar --owner=0 --group=0 --no-same-owner --no-same-permissions .

https://www.gnu.org/software/tar/manual/html_section/tar_33.html#SEC69

tarバージョンがGNUオプションをサポートしていない場合は、展開用のtar.gzファイルを作成する前に、ソースファイルを別のディレクトリツリーにコピーしてグループと所有権を更新できます。

--owner=0そして、--group=0解凍フェーズではなくファイル圧縮フェーズでのみ機能します。
--no-same-owner --no-same-permissions圧縮ステップではなく、圧縮解除ステップでのみ機能します。
一緒に使用すると、tarがファイルを圧縮したり解凍したりするのを覚えていないユーザーのように動作する基本機能を形成します。
ファイルが圧縮中にユーザーとグループ0に保存されている場合は、GUIを介して解凍中にファイルを解凍するユーザーの権限を想定しているため、圧縮段階でユーザーを忘れてしまうのが有効なソリューションです。

答え2

tar --owner=0 --group=0setup root/everything you own のようなものを探していますroot

答え3

GNUでは、--numeric-ownertarを使用してユーザー名が保存されるのを防ぎます。またはを使用して別のユーザーIDを設定できます--owner=ID。抽出時に抽出器がルートではない場合、これらのユーザーIDは削除されます。

ファイルをまとめる一般的な方法は、通常、cpioオプション--no-preserve-ownerを使用することです。rpmファイルはこのように構成されています。

ただし、ユーザーIDを含むtarはほとんど問題ありません。もう少し妄想をしたい場合は、究極のバンドル用の専用アカウントを使用できます。

答え4

tarこれらのファイルは、他の所有者がいるかのように詐欺的に処理できます。近さ

Fakerootは、getuid()、stat()などの代替バージョンを持つライブラリにLD_PRELOADを設定し、ファイル操作に対するroot権限を持つように見える環境でコマンドを実行します。これは、ユーザーがファイルにroot権限/所有権を持つアーカイブ(tar、ar、.deb .rpmなど)を作成できるようにするのに役立ちます。

最初は、すべてのファイルがルート所有としてマークされますが、chownシェルの内部からそのファイルをインポートでき、fakeroot後続のコマンドで新しい所有者が表示されます。

関連情報