ファイルが生成されたシステムに存在しない所有者:グループペアにコンテンツが属するtarファイルを生成したいと思います。
私が試した方向は次のとおりです。
tar ca --owner='otherowner' --group='othergroup' mydata.tgz mydata
このコマンドを実行すると、次のエラーが発生します。
tar: otherowner: Invalid owner
tar: Error is not recoverable: exiting now
ファイルが作成されたシステムに所有者:グループがない場合でも、tarが所有者:グループを強制的に受け入れるようにする方法はありますか?
ベストアンサー1
Linuxは、内部所有者とグループ名を使用せずに数字(UIDとGID)を使用します。ユーザーの便宜のために、ユーザーとグループ名は、/etc/passwd および /etc/group ファイルの内容からマップされます。これらのファイルには「otherowner」エントリがないため、Linuxは実際にファイルにどのUIDとGIDを割り当てるべきかを知りません。数字を渡してみましょう:
$ tar cf archive.tar test.c --owner=0 --group=0
$ tar -tvf archive.tar
-rw-rw-r-- root/root 45 2013-01-10 15:06 test.c
$ tar cf archive.tar test.c --owner=543543 --group=543543
$ tar -tvf archive.tar
-rw-rw-r-- 543543/543543 45 2013-01-10 15:06 test.c
うまくいくようです。