.tgzを使用してファイルの所有権を保存する

.tgzを使用してファイルの所有権を保存する

非常に基本的なUNIXの質問に戻りましょう。

テープアーカイブZip()の前提は、.tgzuid、gid、権限を維持することです。

しかし、これは携帯性がないようです。たとえば、ユーザーがjohnUNIXシステムで.tgzを作成し、そのユーザーが存在しないか名前は同じですが、他のユーザーがUIDを持たないシステムで解凍するとどうなりますか?

どのように動作しますか?

答え1

本当に古いtar形式は数字のユーザーとグループの識別子のみを保存するため、説明する問題があります。

しかし、1988年のPOSIX規格から始めて、tar次のようになります。Unix標準tarフォーマットまたはpaxユーザー名とグループ名も、名前で所有権を保持できるように保存されます。ユーザー名を含むuid 1234が所有するファイルを含むタールボールがある場合は、名前付きユーザーが照会され、可能であればその所有権を持つファイルを抽出しますjohn(1234以外のuidを使用)。そのようなユーザーがいない場合は、次に戻ります。ユーザー UID 1234.tarjohn

これらのどれも完璧ではないため、tarrootとして実行しない限り、所有権は復元されません(所有権を変更するにはrootが必要であるという事実に加えて)。デフォルトでは、ファイルは実行中のユーザーの所有権に抽出されます。

関連情報