我有一個關於 Linux 核心程式設計的家庭作業問題。問題是:
複製檔案時需要什麼特定於 Linux 的權限才能保留檔案的所有權,如何取得它?
透過實驗,我發現我需要成為root
超級用戶才能使其正常工作。有沒有更具體的方法來解釋這種效應?
答案1
請參閱capabilities(7)
手冊頁 – 您需要CAP_CHOWN
能夠通過chown()
. (Root會自動啟用所有能力。手冊頁說明了其他情況下如何取得能力。)
沒有單獨的方法/能力儲存所有權,因為 Linux 檔案副本是透過簡單地將資料讀取/寫入目標檔案來建立的,然後對元資料執行相同的操作。 (作為比較,Windows NT 具有SeBackupPrivilege
和SeRestorePrivilege
特權以及BackupRead()
/BackupWrite()
呼叫。)