非常に基本的なUNIXの質問に戻りましょう。
テープアーカイブZip()の前提は、.tgz
uid、gid、権限を維持することです。
しかし、これは携帯性がないようです。たとえば、ユーザーがjohn
UNIXシステムで.tgzを作成し、そのユーザーが存在しないか名前は同じですが、他のユーザーがUIDを持たないシステムで解凍するとどうなりますか?
どのように動作しますか?
答え1
本当に古いtar
形式は数字のユーザーとグループの識別子のみを保存するため、説明する問題があります。
しかし、1988年のPOSIX規格から始めて、tar
次のようになります。Unix標準tar
フォーマットまたはpax
ユーザー名とグループ名も、名前で所有権を保持できるように保存されます。ユーザー名を含むuid 1234が所有するファイルを含むタールボールがある場合は、名前付きユーザーが照会され、可能であればその所有権を持つファイルを抽出しますjohn
(1234以外のuidを使用)。そのようなユーザーがいない場合は、次に戻ります。ユーザー UID 1234.tar
john
これらのどれも完璧ではないため、tar
rootとして実行しない限り、所有権は復元されません(所有権を変更するにはrootが必要であるという事実に加えて)。デフォルトでは、ファイルは実行中のユーザーの所有権に抽出されます。