
有时,我会不小心的按下 SHIFT+DELETE来删除我的文件数据。是的,我是个笨蛋,没有再次确认下我实际准备要删除的东西。而且我太笨或者说太懒,没有备份我的文件数据。结果呢?数据丢失了!在一瞬间就丢失了。
这种事时不时就会发生在我身上。如果你和我一样,有个好消息告诉你。有个简单又有用的命令行工具叫chattr(Change 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– 不可删除
在本教程中,我们将讨论两个属性的使用,即 a、i ,这个两个属性可以用于防止文件和目录的被删除。这是我们今天的主题,对吧?来开始吧!
防止文件被意外删除和修改
我先在我的当前目录创建一个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/) 荣誉推出


发表回复