コピー時にファイルの所有権を保持するにはどのような権限が必要で、それを取得するにはどうすればよいですか?

コピー時にファイルの所有権を保持するにはどのような権限が必要で、それを取得するにはどうすればよいですか?

Linux のカーネル プログラミングに関する宿題の質問があります。質問は次のとおりです。

ファイルをコピーするときにその所有権を保持するには、Linux 固有のどのような権限が必要ですか。また、その権限を取得するにはどうすればよいでしょうか。

root実験の結果、これを機能させるにはスーパーユーザーになる必要があることがわかりました。この効果を説明するより具体的な方法はありますか?

答え1

を参照してくださいcapabilities(7)マニュアル ページ – をCAP_CHOWN介してファイルの所有権を変更する機能が必要ですchown()。(ルートではすべての機能が自動的に有効になります。マニュアル ページでは、他の場合に機能を取得する方法について説明しています。)

単に保存するLinux のファイル コピーは、単に宛先ファイルへのデータの読み取り/書き込みを行い、次にメタデータに対して同じ操作を実行することによって行われるため、所有権は必要ありません。(比較すると、Windows NT には権限とSeBackupPrivilege/呼び出しがあります。)SeRestorePrivilegeBackupRead()BackupWrite()

関連情報