有时,我会不小心的按下 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/) 荣誉推出
发表回复