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
魔法を唱える