如何在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+ 浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告