
為了保護我的網頁伺服器上的數據,我已將 PHP 包含檔案移至名為 /var/www-includes 的資料夾(在伺服器根目錄 /var/www 之外)。我也在那個資料夾上運行了chown root:wwwadmin
and 。chmod 770
當我ls -ld
在該資料夾上運行時,它會驗證設定:drwxrwx--- ... root wwwadmin ... www-includes
雖然我可以從屬於 wwwadmin 成員的主用戶 (adam) cd 到該資料夾,但我無法在圖形文件瀏覽器中查看其內容。知道為什麼嗎?編輯:另外,當嘗試編輯 Nano 中包含的文件時,它會向我顯示錯誤訊息:
Error reading /home/adam/.nano_history: Permission denied
然後開啟文件的內容。這與可能發生的事情有關係嗎?
答案1
也許是一個明顯的問題,但是...您是否也更改了目錄內文件的權限?換句話說,您在發出 chown/chmod 命令時是否使用了“-r”(遞歸)標誌?
答案2
也許不是答案(因為該帖子沒有包含足夠的資訊),但如果需要我可以修改它。在做linux培訓課程的時候我發展了一種快速尋找權限問題的方法。我知道您已經執行了一些步驟,但為了完整起見,我需要完整地寫下來。
- 切換到您要用於存取的使用者。在做其他事情之前先做這件事。
- 使用
id
命令檢查您目前的 UID 和群組。用於id name-of-the-user
檢查磁碟上的配置。如果它們不同,請登出並重新登錄,然後再次檢查。 - 使用“ls -l”檢查目標目錄。不要忘記檢查權限後面的字元。可能有一個點表示這是一個 selinux 上下文,或者可能有一個加號表示 Linux ACL 已設定。
- 使用“cd”進入目錄。
- 對常規文件執行必要的操作。用於
touch
檢查寫入存取權限,cat
用於檢查讀取存取權限。 - 檢查應用程式層級上的一切是否按預期工作(例如,使用瀏覽器存取應導致相應操作的 URL、使用您最喜歡的先前失敗的編輯工具等)
- 將上述任何檢查新增至應用程式層級。
如果任何操作失敗且您不知道原因,請檢查日誌中是否有 selinux 警報或類似資訊。您也可以嘗試新增strace -o strace.log
到命令列,然後檢查 strace.log沒有權限消息。但這都是黑魔法,除非你知道確切的原因沒有權限。