如何在 Linux 中禁用文件和目录的删除权限?

operating systemlinuxmca

很多时候,文件或目录可能会被无意删除。这可能导致重要数据丢失或系统配置错误,因此我们需要一种方法来阻止文件和目录的意外删除。这种方法可能不适用于所有文件和目录,但我们可以设计一个方案,至少可以防止某些文件和目录发生这种情况。

我们使用 change attribute 命令来防止这种情况发生,下面将介绍如何将此命令应用于两个文件和目录。

语法

以下是 change attribute 命令的语法。

chattr [运算符] [标志] [文件名]
其中运算符可以是 ‘+’ 、 ‘-‘ 或 ‘=’ 。
可以将 flag 设置为 i,使文件不可变。

现在,我们先来研究一下目录及其中文件的现有属性。我们发现,它们是可以重写和删除的普通文件。

~/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

相关文章


有用资源