Linux系統刪除文件的時候有一些注意事項,如果沒有注意到這些細節,就算你擁有某個文件的w權限,你也無法刪除文件。下面就來具體演示一下刪除文件的場景,給大家介紹為什麼Linux系統擁有w權限卻無法刪除文件。
場景模擬:
root 用戶
[root@mode-6 ~]# mkdir /oldboy/
[root@mode-6 /]# ll /oldboy/ -d
drwxr-xr-x 2 root root 4096 Nov 27 15:46 /oldboy/
[root@mode-6 ~]# cd /oldboy/
[root@mode-6 oldboy]# vim test1.sh
echo ‘My name Is ZhangLiang.’
[root@mode-6 oldboy]# ll
total 4
-rw-r--r-- 1 root root 30 Nov 27 15:44 test1.sh
普通用戶
[oldboy@mode-6 oldboy]$ cat test1.sh
echo ‘My name Is ZhangLiang.’
[oldboy@mode-6 oldboy]$ echo “12312” 》》 test1.sh
-bash: test1.sh: Permission denied # 權限不足
[oldboy@mode-6 oldboy]$ 。/test1.sh
-bash: 。/test1.sh: Permission denied# 權限不足
root 用戶
[root@mode-6 oldboy]# chmod 747 test1.sh
[root@mode-6 oldboy]# ll
total 4
-rwxr--rwx 1 root root 30 Nov 27 15:44 test1.sh
這是在使用其他用戶進行 rwx操作都可以成功執行。但是進行刪除操作時卻失敗
[oldboy@mode-6 oldboy]$ rm -f test1.sh
rm: cannot remove `test1.sh‘: Permission denied # 權限不足
其中文件名稱保存在上級目錄的block 中,所以能否對文件進行刪除,是看上級目錄是否有相應的 w 權限。
[root@mode-6 /]# ll /oldboy/ -d
drwxr-xr-x 2 root root 4096 Nov 27 15:46 /oldboy/# 其他用戶沒有 w 權限。所以不能刪除
[root@mode-6 /]# chmod 757 。/oldboy/# root 用戶
[root@mode-6 /]# ll /oldboy/ -d
drwxr-xrwx 2 root root 4096 Nov 27 15:46 /oldboy/ # 權限已修改
[oldboy@mode-6 oldboy]$ rm -f test1.sh # 普通用戶 可以成功刪除了
###############################
###############################
###############################
對於目錄來說 rwx
其中r :代表讀取目錄中的內容
w:刪除、修改 目錄裡面文件名的權限 【必須配合 x 執行才可以】
x:代表能否進入到目錄裡面去
通過上面的演示,你是否清楚為什麼Linux系統擁有w權限卻無法刪除文件了呢?看了本文的介紹,下次刪除文件的時候就可以避免同樣的問題了。