一般ユーザーとして、rootが所有するファイルを含むtarを生成します。

一般ユーザーとして、rootが所有するファイルを含むtarを生成します。

tarファイルを作成したいです。一般(ルートではない)ユーザー準備されたいくつかのバイナリと設定ファイルは次のとおりです。

etc/binaries.conf
usr/bin/binary1
usr/bin/binary2

/このディレクトリのファイルシステムに抽出するという意味です。

既存のパッケージ.deb、.rpmなどに似ていますが、「パッケージマネージャに依存しません」でなければなりません。したがって、おそらく.tarファイルしか持たないでしょう(gzip、bzip、lzipファイルを追加する必要がありますが、そこにあります)。

質問/質問

私の問題は私ですいいえこのtarを次のように作成したいと思います。ユーザーは、このtarを次のようにビルドする方法があるかどうかを知りたいです。一般(ルートではない)ユーザーその後、.tarファイルがコンピュータに展開され、実際のrootユーザーがこれらのバイナリを抽出すると、所有者が所有するファイルとしてインストールされます。ユーザーですか、それともバイナリを抽出したユーザーですか?

はい

なぜなら、私は.tarファイルを次のように生成したからです。一般(ルートではない)ユーザーそして

$ tar cf dist.tar dist/

それから.tarを解凍してユーザーと

# tar xf dist.tar -C /

バイナリと構成ファイルの所有者は、rootではなく一般ユーザーであることを確認しました。

$ ls -la /usr/bin/binary1
-rwxr-xr-x 1 user user 30232 jun  20 19:06 /usr/bin/binary1

持ちたい

$ ls -la /usr/bin/binary1
-rwxr-xr-x 1 root root 30232 jun  20 19:06 /usr/bin/binary1

明らかに、この手で作られたパッケージングは​​クローズドインフラストラクチャの特定の作業にのみ適用されるため、.deb、.rpm、またはその他のより洗練されたパッケージングシステムを使用することは現時点ではオプションではありません。

答え1

これ抽出所有権を決定するのではなく作る保管。たとえば、アーカイブのディレクトリを見て確認することができます。

tar tvf dist.tar

一般ユーザーとしてファイルを生成する場合

tar --owner 0 --group 0 dist.tar dist

魔法を唱える

関連情報