回答:
tar
関連付けられた文字列ではなく、UIDとGIDに基づいて権限を記録します。そのため、1つのサーバーのUIDが3300で、「bob」にリンクされていた場合、新しいサーバーでは、UID 3300を持つユーザーがファイルを所有します。
仮想のすべて(私はすべてを言いたいが、100%確信することは決してできない)UNIXでは、UID:GID値を使用します。これはファイルシステムレベルで実際に保存されるためです。名前はpasswdファイルでの単純な検索であり、基礎となるチェックは数値を使用して行われます。
tar
以前の回答を要約し、いくつかの重要な情報を追加します。
アーカイブを作成するときは、tar
必ず、ファイルユーザーとグループIDを保持しますしない限り、そうでないと言いました--owner=NAME
、--group=NAME
。ただし、各ファイルには常にユーザーとグループが関連付けられます。
GNUタール、およびおそらく他のバージョンではtar
、また、ユーザおよびグループ保存名をしない限り、--numeric-owner
使用されています。bsdtarはデフォルトでユーザー名とグループ名も保存し--numeric-owner
ますが、作成時のオプションのサポートはbsdtar 3.0まで表示されませんでした(bsdtarはより長い時間抽出するオプションをサポートしたことに注意してください)。
通常のユーザーとして抽出する場合、すべてのファイルは常にユーザーが所有します。また、ファイルを抽出するとファイルシステム上に新しいファイルが作成され、通常のユーザーはファイルを作成して他の誰かに所有権を付与することはできないため、これに違いはありません。
抽出する際のルート、tar
デフォルトでは、抽出されたファイルの所有権を復元しますしない限り、 --no-same-owner
使用されている自分自身のルートに所有権を与えるであろう。
GNU tar、bsdtar、およびおそらく他のバージョンではtar
、復元された所有権は、その情報がアーカイブにあり、宛先システムに一致するユーザーがいる場合、ユーザー(およびグループ)名によって実行されます。それ以外の場合は、IDで復元します。場合はオプションが提供され、ユーザー名とグループ名は無視されます。--numeric-owner
許可とタイムスタンプもアーカイブに保存され、オプション--no-same-permissions
および/またはオプション--touch
が使用されない限り、デフォルトで復元されます。ユーザーが抽出すると、使用されない限り、ユーザーの権限から許可umask
が差し引か--same-permissions
れます。
--preserve-permissions
および--same-permissions
エイリアスであり、同じ機能を持ちます-p
これが問題の明確化に役立つことを願っています!:)
tar
、--owner
または--group
で任意の名前を指定できるようになっていることに注意してください。過去tar
に現在のマシンで無償の検索を行い、/etc/passwd
一致しない場合は実行を拒否しました。
--owner
し、--numeric-owner
フラグに追加するとどうなりますか?tarはこれらの競合する要件をどのように処理しますか?
--owner
そして--numeric-owner
、相互に排他的ではなく、非常に明確な目的を果たします:--owner=USERNAME
ファイルをアーカイブするときにファイルとディレクトリ所有者をオーバーライドしますが、--numeric-owner
単にユーザー名ではなく、数値IDのみを保存します。
GNU tarの--same-ownerオプションを使用します。http://www.gnu.org/software/tar/manual/html_section/Attributes.htmlを参照してください
2つのシステム間でファイルを転送しようとする場合、rsyncはデフォルトで、uidではなくユーザー名でアクセス権を設定し、両端のユーザー名を確認します。ユーザーがシステムの1つに存在しない場合にのみ、特に指定しない限り、ユーザーはuidでそれをコピーします。