web-dev-qa-db-ja.com

所有者とグループにtarファイルのコンテンツを強制しますか?

ファイルの作成元のシステムに存在しないowner:groupペアに属するコンテンツを含むtarファイルを作成したいと思います。

これが私が試した方向です:

tar ca --owner='otherowner' --group='othergroup' mydata.tgz mydata

このコマンドを実行すると、次のエラーが発生します。

tar: otherowner: Invalid owner
tar: Error is not recoverable: exiting now

ファイルの作成元のシステムにどちらも存在しない場合でも、tarがowner:groupを受け入れるように強制する方法はありますか?

21
David

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

動作するようです。

19
Nykakin

パラメータ--no-same-owner --no-same-permissionstarを追加します。 ドキュメントを見てください を取ります。

1
Bruno Wego