如果 在 Linux 系统里处理过敏感文件,我们可能希望防止其他人(甚至是我们自己)意外重命名或删除它们。幸运的是,Linux 提供了几种”锁定”文件的方法,以确保文件不会受到不必要的更改。

在本教程中,我们将展示如何使用 Linux 中提供的简单命令和工具锁定文件以防止重命名或删除它。我们还将通过示例来进行演示。

假设我们在 /root/ 目录中有一个名为 important.txt 的文件,并且我们想保护此文件不被重命名或删除。

方法1、使用 chattr 使文件不可变

保护文件免遭重命名或删除最简单、最有效的方法就是使用 chattr 命令,该命令可更改 Linux 中的文件属性。

首先,让我们使用 lsattr 命令检查 important.txt 的属性,该命令将列出文件和目录的属性:

# lsattr /root/important.txt

如果文件未被锁定,则输出中应该看不到任何内容或仅显示”-“:

图.1 Linux 系统显示文件属性

要锁定 important.txt(无法重命名或删除),则执行以下命令:

# chattr +i /root/important.txt
# lsattr /root/important.txt

图.2 为文件增加 i 属性

现在,可以看到文件属性的输出的结果中有了一个 i 标识,表示文件已被锁定。

使用如下命令尝试重命名或删除文件,看锁定是否生效:

# mv /root/important.txt /root/important_backup.txt
# rm -rf /root/important.txt
# shred -u -z /root/important.txt

命令执行后,会提示”Operation not permitted”,命令不能执行,说明锁定文件已经生效。

图.3 验证文件锁定属性

要删除锁定属性并允许更改文件,则先使用如下命令修改其属性:

# chattr +i /root/important.txt

去除掉锁定属性后,就可以正常重命名或删除文件了。

方法 2:使用文件权限限制删除

防止文件删除的另一种方法是使用 chmod 命令更改文件的权限,该命令可以设置使文件无法被其他用户读取或编辑的权限。

要防止所有人(包括我们自己)删除或修改文件,请使用:

# chmod a-w /root/important.txt

我们可以使用如下命令查看文件的权限:

# ls -l /root/important.txt

图.4 使用 chmod 命令删除修改权限

如上图所示,文件的 w(写入)权限已被删除,这表明没有人可以修改或删除该文件。

使用如下命令,就可以让我们自己可以修改文件了:

# chmod +w /root/important.txt

方法 3:使用 chown 更改所有权

如果想让我们自己是唯一有权修改或删除该文件的人,则可以更改该文件的所有权:

# chown yourusername:yourgroup /root/important.txt

将 yourusername 和 yourgroup 替换为实际的用户名和属组,这样,该用户就是唯一可以修改或删除文件的用户了。

在 Linux 中锁定文件有助于防止意外更改(如重命名或删除),这在处理重要文件时尤其有用。

我们讨论的方法包括使用 chattr 使文件不可变、调整文件权限和更改文件所有权,这些方法易于使用,并且保证所需的安全性。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注