如何在 Linux 系统中防止文件和目录被意外的删除或修改

Sk 的头像

·

·

·

9,983 次阅读

有时,我会不小心的按下 SHIFT+DELETE来删除我的文件数据。是的,我是个笨蛋,没有再次确认下我实际准备要删除的东西。而且我太笨或者说太懒,没有备份我的文件数据。结果呢?数据丢失了!在一瞬间就丢失了。

这种事时不时就会发生在我身上。如果你和我一样,有个好消息告诉你。有个简单又有用的命令行工具叫chattrChange Attribute 的缩写),在类 Unix 等发行版中,能够用来防止文件和目录被意外的删除或修改。

通过给文件或目录添加或删除某些属性,来保证用户不能删除或修改这些文件和目录,不管是有意的还是无意的,甚至 root 用户也不行。听起来很有用,是不是?

在这篇简短的教程中,我们一起来看看怎么在实际应用中使用 chattr 命令,来防止文件和目录被意外删除。

Linux中防止文件和目录被意外删除和修改

默认,chattr 命令在大多数现代 Linux 操作系统中是可用的。

默认语法是:

chattr [operator] [switch] [file]

chattr 具有如下操作符:

  • 操作符 +,追加指定属性到文件已存在属性中
  • 操作符 -,删除指定属性
  • 操作符 =,直接设置文件属性为指定属性

chattr 提供不同的属性,也就是 aAcCdDeijsStTu。每个字符代表一个特定文件属性。

  • a – 只能向文件中添加数据
  • A – 不更新文件或目录的最后访问时间
  • c – 将文件或目录压缩后存放
  • C – 不适用写入时复制机制(CoW)
  • d – 设定文件不能成为 dump 程序的备份目标
  • D – 同步目录更新
  • e – extend 格式存储
  • i – 文件或目录不可改变
  • j – 设定此参数使得当通过 mount 参数:data=ordered 或者 data=writeback 挂载的文件系统,文件在写入时会先被记录在日志中
  • P – project 层次结构
  • s – 安全删除文件或目录
  • S – 即时更新文件或目录
  • t – 不进行尾部合并
  • T – 顶层目录层次结构
  • u – 不可删除

在本教程中,我们将讨论两个属性的使用,即 ai ,这个两个属性可以用于防止文件和目录的被删除。这是我们今天的主题,对吧?来开始吧!

防止文件被意外删除和修改

我先在我的当前目录创建一个file.txt文件。

$ touch file.txt

现在,我将给文件应用 i 属性,让文件不可改变。就是说你不能删除或修改这个文件,就算你是文件的拥有者和 root 用户也不行。

$ sudo chattr +i file.txt

使用lsattr命令检查文件已有属性:

$ lsattr file.txt

输出:


e

via: <https://www.ostechnix.com/prevent-files-folders-accidental-deletion-modification-linux/>

作者:[SK](https://www.ostechnix.com/author/sk/) 译者:[yizhuoyan](https://github.com/yizhuoyan) 校对:[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

发表回复

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