為什麼即使我有組權限,我也會收到“權限被拒絕”錯誤?
我正在嘗試在 Manjaro Linux 中執行一個名為“Dofus”的遊戲。我已經用打包器安裝了它,把它放在
/opt/ankama
文件夾下。此文件夾所有權(以及其中的每個文件)是 root 使用者和遊戲組。按照安裝包的指示,我已將自己(使用者familia
)添加到遊戲組中(如果不這樣做,“我每次嘗試執行更新程序時都必須輸入密碼”)。但是,在執行遊戲時,輸入我的密碼後它會崩潰(這不應該是必需的)。檢查日誌,我遇到了一些錯誤,例如:
[29/08 20:44:07.114]{T001}INFO c/net/NetworkAccessManager.cpp L87 : Starting request GET http://dl.ak.ankama.com/updates/uc1/projects/dofus2/updates/check.9554275D [29/08 20:44:07.291]{T001}INFO c/net/NetworkAccessManager.cpp L313 : Request GET http://dl.ak.ankama.com/updates/uc1/projects/dofus2/updates/check.9554275D Finished (status : 200) [29/08 20:44:07.292]{T001}ERROR n/src/update/UpdateProcess.cpp L852 : Can not cache script data
所以,我懷疑 Permission Denied 錯誤。啟動後的錯誤資訊
這意味著“寫入磁碟時發生錯誤 - 驗證您是否有足夠的權限和足夠的磁碟空間”。
然後,經過一番研究,我遇到了可以在文件夾中記錄文件訪問的“auditd”。設置好後,查看哪些文件訪問不成功,結果如下。
所有這些錯誤實際上都指向一個獨特的文件 ,
/opt/ankama/transition/transition
並帶有對 (open
) 的系統呼叫。該文件的權限為rwxrwxr-x
(775
)。所以,我對它有 rwx 權限,但它給了我一個錯誤exit -13
,這是一個EACESS
錯誤(權限被拒絕)。我已經嘗試重新啟動電腦,登錄和註銷。他們都沒有工作。
如果我將文件夾權限設置為
familia:games
,它可以毫無問題地執行,我什至不需要輸入我的密碼。然而,這種方式似乎並不正確。即使我有讀/寫/執行權限,為什麼我會收到 Permission Denied 錯誤的任何想法?Mark 說過我可能需要在路徑前綴的所有目錄中都具有 +x 權限。路徑本身是
/opt/ankama/transition/transition
. 路徑前綴的權限是:/opt - drwxr-xr-x(755), 所有權 root:root
/opt/ankama - drwxr-xr-x(755),所有權根:遊戲
/opt/ankama/transition - drwxrwxr-x(775),所有權根:遊戲
但是,我注意到的一件事是 的所有子文件夾
/opt/ankama
都是775
,即使文件夾本身是755
. 我認為這沒有任何意義,並且將權限更改為775
不起作用。此外,Giel 建議我可以在我的系統上執行 AppArmor。但是,跑步
# cat /sys/module/apparmor/parameters/enabled
給了我N
.
首先,當您將自己添加到組時,不會立即應用更改。最簡單的方法是註銷並重新登錄。
然後是數據文件的寫權限(正如一些評論中已經提到的)。但是,這些解決方案對安全性不利。
- 為遊戲添加一個組。不要將任何使用者添加到該組。
- 通過以下方式使遊戲可執行
chmod -R ugo+rX game-directory
- 僅向組授予寫入權限,而沒有其他人使用
chmod -R ug+w,o-w game-directory
- 將游戲添加到組
chgrp -R game-group game-directory
,chmod -R g+s game-directory
要不就
addgroup game-group; chgrp -R game-group game-directory; chmod -R u=rwX,g=rwXs,o=rX game-directory
如果遊戲需要更改權限,那麼您可以執行相同的操作,但針對使用者而不是組。IE。
adduser game-owner; addgroup game-group; chown -R game-owner:game-group game-directory; chmod -R u=rwXs,g=rwXs,o=rX game-directory