Linux 顯示我有寫權限,但無法刪除該文件

Linux 顯示我有寫權限,但無法刪除該文件

Linux 顯示我有寫入權限,但無法刪除該檔案。我已經檢查過並且我對每個父目錄都有執行權限。知道這是怎麼發生的嗎?

deployer@my-web:/usr/local/bin$ ls -la
total 10656
drwxr-xr-x  2 root     root        4096 Feb 11 21:25 .
drwxr-xr-x 10 root     root        4096 Feb  3 13:21 ..
-rwxr-xr-x  1 deployer deployer 1836198 Mar 18 19:05 composer

deployer@my-web:/usr/local/bin$ rm composer
rm: cannot remove ‘composer’: Permission denied

答案1

簡而言之,您不僅需要檔案的權限,還需要保存該檔案的目錄的權限。在經典 UNIX 中,目錄實際上是一種特殊的檔案 - 保存指向其中檔案的指標。這就是為什麼您需要對目錄進行寫入(w)存取。

在這種情況下,您需要變更(或讓特權擁有者變更)/usr/local/bin 上的權限。

答案2

目錄的權限與檔案的權限並不完全相同。
寫入權限允許使用者建立、刪除或修改任何檔案或子目錄,即使該檔案或子目錄由其他使用者擁有。

對於目錄,由於使用相同的命令,因此沒有太大變化。但是,由於目錄通常包含也需要分配給新使用者或群組的文件,因此我們使用 '-R' 標誌,代表 '遞迴的' - 換句話說,所有子目錄及其檔案:

chown -R user:group dirname

相關內容