rsync -o
ファイルを送信すると、所有権を維持できないことがわかりました。しかし、移動するときはそうします。これらすべてに管理者権限がありません。これの根拠は何ですか?たとえば、複数のスレッド(1)管理者権限の必要性を反映しているようです。
答え1
同じファイルシステム内でファイルを移動すると、ファイルは元の場所から切り離され、新しい場所にリンクされます。ファイルデータは変更されず、そのまま残ります。ファイルメタデータ -インデックスノード——変化はありません。したがって、ファイルは所有権、権限、時間、およびその他の属性を保持します。名前と含まれているディレクトリの変更(およびinodeの変更時間(ctime))のみが保持されます。
ファイルをコピーすると(rsync
または他のユーティリティを使用して)同じ内容の新しいファイルが作成され、変更時間はコピーが完了した日付に設定されます。コピーユーティリティによっては、ソースファイルからファイルメタデータの一部をコピーすることもできますrsync -o
。
inodeを移動するには、ソースディレクトリ(分離)と宛先ディレクトリ(再接続)への書き込み権限のみが必要です。ファイルを所有したり、ファイルを読み書きできるようにする必要はありません。一方、他のユーザーに属するファイルを作成できないか、他のユーザーにファイルを提供する(rootとして実行されるプログラムを除く)したがって、root以外のユーザーにファイルをコピーしても、所有権は保持されません(コピーを作成するユーザーが元のファイルを所有していない限り)。