修復(fù) Linux 上的文件權(quán)限錯(cuò)誤
如果你通過網(wǎng)絡(luò)或“跑腿網(wǎng)絡(luò)”(將文件保存到硬盤,以將其復(fù)制到一臺(tái)計(jì)算機(jī))在兩個(gè)用戶之間共享文件,那么在嘗試讀取或?qū)懭胛募r(shí)可能會(huì)遇到權(quán)限錯(cuò)誤。即使你了解它的概念,你也可能不知道該如何診斷或解決問題。我曾經(jīng)將數(shù)據(jù)遷移作為一項(xiàng)服務(wù)執(zhí)行,因此我遇到了相當(dāng)多的權(quán)限錯(cuò)誤和所有權(quán)沖突。這是我快速修復(fù)它們的方法。
1、確定正確的用戶
在修復(fù)權(quán)限錯(cuò)誤之前,你必須確定需要權(quán)限的人是誰。你可能認(rèn)為你已經(jīng)知道這一點(diǎn),但你可能沒有意識(shí)到用戶名并不是用戶身份的最確定屬性。你的計(jì)算機(jī)不會(huì)將你視為一個(gè)人,而是將你視為一個(gè)數(shù)字。要了解你的號(hào)碼,請(qǐng)查看你的用戶 ID:
$ id --user
1005
2、獲取當(dāng)前所有者
接下來,確定你無法與之交互的文件的所有者。由于發(fā)生了文件權(quán)限問題,你可能需要使用 ??sudo?
? 命令查看有關(guān)文件的信息:
$ 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
在此示例中,擁有文件的用戶被標(biāo)識(shí)為用戶 ID 1000,這就是用戶 ID 1005 無法與它們交互的原因。更糟糕的是,這些文件標(biāo)記為僅由擁有它們的用戶可讀和可寫,因此即使是同一組的成員也不能與這些文件進(jìn)行交互。
3、更改權(quán)限以匹配
你知道需要權(quán)限的用戶,因此你可以更改當(dāng)前所有者以匹配你當(dāng)前的用戶:
$ sudo chown 1005 foo
你還可以通過更改文件模式授予你的組成員以及系統(tǒng)上可能的其他用戶對(duì)文件的訪問權(quán)限。例如,在向組和任何其他用戶授予讀取權(quán)限(4)的同時(shí)保持讀取和寫入權(quán)限(7):
$ sudo chmod 744 foo
了解更多
當(dāng)你對(duì)文件權(quán)限不熟悉時(shí),它們似乎很棘手。有關(guān)文件所有權(quán)如何工作的更多信息,請(qǐng)閱讀 ??chown 簡(jiǎn)介??。