如何在Linux系統中停用檔案和目錄的刪除許可權?


很多時候,可能會意外刪除檔案或目錄。這可能導致重要資料丟失或系統配置錯誤,因此我們需要一種方法來阻止意外刪除檔案和目錄。這可能並不適用於所有檔案和目錄,但我們可以設計一種方案,至少可以防止某些檔案和目錄出現這種情況。

我們使用更改屬性命令來防止這種情況,下面我們將看到如何將此命令應用於兩個檔案和目錄。

語法

以下是更改屬性命令的語法。

chattr [operator] [flag] [filename]
Where the operator can be ‘+’ , ‘-‘ or ‘=’ .
And flag can be set to i to make the file immutable.

現在,讓我們首先調查一下目錄及其中的檔案的現有屬性。我們看到它們是普通檔案,可以重寫和刪除。

~/Documents/tutorials$ pwd ; ls -l
/home/ubuntu/Documents/tutorials
total 4
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 31 21:13 linux
~/Documents/tutorials$ lsattr
-------------e-- ./linux
~/Documents/tutorials$ cd linux/
~/Documents/tutorials/linux$ lsattr
-------------e-- ./passwd_bkup.txt
-------------e-- ./movie_list.txt

現在,我們應用“i”標誌使其中一個檔案不可變,以便無法刪除它。

$ sudo chattr +i passwd_bkup.txt
[sudo] password for ubuntu:
$ lsattr
----i--------e-- ./passwd_bkup.txt
-------------e-- ./movie_list.txt

正如您所看到的,passwd_bkup.txt 檔案現在具有 i 檔案屬性。現在讓我們嘗試刪除此檔案。具有 I 屬性的檔案不會被刪除,而其他檔案將被刪除。

$ rm -rf passwd_bkup.txt
rm: cannot remove 'passwd_bkup.txt': Operation not permitted
# Other file gets deleted.
$ rm -rf movie_list.txt
$ lsattr
----i--------e-- ./passwd_bkup.txt

現在,包含此檔案的目錄也不會被刪除,因為它不能變空。

$ rm -rf linux/
rm: cannot remove 'linux/passwd_bkup.txt': Operation not permitted

更新於:2020年1月3日

2K+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告