如果 在 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 使文件不可变、调整文件权限和更改文件所有权,这些方法易于使用,并且保证所需的安全性。