
我在 Ubuntu 伺服器上的檔案權限方面遇到了一些問題。我正在使用 WinSCP 將檔案移至伺服器。伺服器工作正常,但過了一段時間,我似乎不再有刪除檔案的權限。
我正在使用名為的帳戶連接到伺服器斯瓦管理員,Apache伺服器的根目錄是/var/www。每個網站在此下都有自己的目錄 - 即
/var/www/site1
/var/www/site2
這是 ls 指令的輸出...
cd /var/www
ls -al
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 14:45 .
drwxr-xr-x 15 root root 4096 2009-05-05 15:47 ..
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 site1
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 site2
我的理解是,這意味著目錄所有者俱有讀取/寫入/執行權限?當我使用 svadmin 帳戶連接到伺服器時,我是否應該能夠覆蓋或刪除 /var/www/site1 或 /var/www/site2 中的檔案?
我對 Linux 檔案/目錄權限不太熟悉,所以我一直在努力弄清楚我該做什麼。任何幫助將不勝感激!
更多資訊:(感謝您的快速回覆!)
/var/www/site1 的 ls -al 輸出
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 .
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 14:45 ..
-rw-r--r-- 1 svadmin svadmin 157 2009-05-12 13:23 error.php
-rw-r--r-- 1 svadmin svadmin 158 2009-05-12 13:23 .htaccess
-rw-r--r-- 1 svadmin svadmin 142 2009-05-12 13:23 index.php
drwxr-sr-x 2 svadmin svadmin 4096 2009-05-12 18:40 libraries
當我嘗試刪除文件時出現錯誤訊息:
rm admin.php
rm: cannot remove 'admin.php' : Read-only file system
更多資訊 只是添加一些可能相關的資訊...直到昨天下午一切都正常。此時,一位同事取出了虛擬機器檔案所在的 SAN,而 Web 伺服器出現了較不正常的關閉。
答案1
這不是權限問題。兩條線索是:
- rm:無法刪除「admin.php」:唯讀檔案系統
- 直到昨天下午一切都正常。此時,一位同事取出了虛擬機器檔案所在的 SAN,而 Web 伺服器出現了較不正常的關閉。
不知何故,當 SAN 消失時,包含 /var/www 的檔案系統可能會變成「唯讀」。命令的輸出mount
應在末尾帶有 (ro) 標誌來標識此檔案系統。
修復方法是找出發生這種情況的原因,確保已修正,然後使用以下命令重新掛載檔案系統 rw:
mount -oremount,rw $filesystem
答案2
如果目錄上有 rwx,則表示您可以編輯目錄文件,這相當於刪除和新增文件。編輯文件是其各自權限的功能。子目錄之一的 ls -l 是什麼樣子的?
答案3
你的問題是黏性位。請注意,那裡沒有權限drwxr-xr-x
,它們是drwxr-sr-x
。維基百科說:
如今,黏性位最常見的用途是在目錄上,設定後,目錄中的項目只能由專案擁有者、目錄擁有者或超級使用者重新命名或刪除;如果沒有設定黏性位,任何對該目錄具有寫入和執行權限的使用者都可以重新命名或刪除包含的文件,無論所有者是誰。通常,這是在 /tmp 目錄上設定的,以防止普通使用者刪除或移動其他使用者的檔案。該功能於 1986 年在 4.3BSD 中引入,如今在大多數現代 Unix 系統中都可以找到。
因此,檔案只能由最初放置它們的群組寫入和刪除。