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=0
setup root
/everything you own のようなものを探していますroot
。
答え3
GNUでは、--numeric-owner
tarを使用してユーザー名が保存されるのを防ぎます。またはを使用して別のユーザー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
後続のコマンドで新しい所有者が表示されます。