修復 Linux 上的文件權限錯誤
如果你通過網絡或“跑腿網絡”(將文件保存到硬盤,以將其復制到一臺計算機)在兩個用戶之間共享文件,那么在嘗試讀取或寫入文件時可能會遇到權限錯誤。即使你了解它的概念,你也可能不知道該如何診斷或解決問題。我曾經將數據遷移作為一項服務執行,因此我遇到了相當多的權限錯誤和所有權沖突。這是我快速修復它們的方法。
1、確定正確的用戶
在修復權限錯誤之前,你必須確定需要權限的人是誰。你可能認為你已經知道這一點,但你可能沒有意識到用戶名并不是用戶身份的最確定屬性。你的計算機不會將你視為一個人,而是將你視為一個數字。要了解你的號碼,請查看你的用戶 ID:
$ id --user
1005
2、獲取當前所有者
接下來,確定你無法與之交互的文件的所有者。由于發生了文件權限問題,你可能需要使用 ??sudo?
? 命令查看有關文件的信息:
$ sudo ls --numeric-uid-gid
-rw------- 1 1000 100 23041 Aug 2 05:26 bar
-rw------- 1 1000 100 54281 Aug 2 04:58 baz
-rw------- 1 1000 100 822 Aug 2 08:19 foo
在此示例中,擁有文件的用戶被標識為用戶 ID 1000,這就是用戶 ID 1005 無法與它們交互的原因。更糟糕的是,這些文件標記為僅由擁有它們的用戶可讀和可寫,因此即使是同一組的成員也不能與這些文件進行交互。
3、更改權限以匹配
你知道需要權限的用戶,因此你可以更改當前所有者以匹配你當前的用戶:
$ sudo chown 1005 foo
你還可以通過更改文件模式授予你的組成員以及系統上可能的其他用戶對文件的訪問權限。例如,在向組和任何其他用戶授予讀取權限(4)的同時保持讀取和寫入權限(7):
$ sudo chmod 744 foo
了解更多
當你對文件權限不熟悉時,它們似乎很棘手。有關文件所有權如何工作的更多信息,請閱讀 ??chown 簡介??。