linux防止文件和目录被意外删除或修改
【摘要】 为了防止在 Linux 系统中意外删除一些重要文件或目录,除了必要的备份之外,还有一个好方法,就是使用 chattr(Change Attribute)命令在类 Unix 等发行版中,该命令能够有效防止文件和目录被意外的删除或修改。file 文件在 Linux 中被描述为一个数据结构,chattr 命令在大多数现代 Linux 操作系统中是可用的,可以修改file属性,一旦定义文件的隐藏属性...
为了防止在 Linux 系统中意外删除一些重要文件或目录,除了必要的备份之外,还有一个好方法,就是使用
chattr(Change Attribute)命令
在类 Unix 等发行版中,该命令能够有效防止文件和目录被意外的删除或修改。file 文件在 Linux 中被描述为一个数据结构,chattr 命令在大多数现代 Linux 操作系统中是可用的,可以修改file属性,一旦定义文件的隐藏属性,那么该文件的拥有者和 root 用户也无权操作该文件,只能解除文件的隐藏属性。
命令语法
chattr [operator] [switch] [file]
operator 具有如下操作符:
- 操作符
+
,追加指定属性到文件已存在属性中 - 操作符
-
, 删除指定属性 - 操作符
=
,直接设置文件属性为指定属性
switch 常用属性指令如下
a:让文件或目录仅供附加用途;
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。
其它参数
- -R:递归处理,将指令目录下的所有文件及子目录一并处理;
- -v<版本编号>:设置文件或目录版本;
- -V:显示指令执行过程
设置文件不能被改名,移动删除,增删数据
> lsattr rumenz.txt
---------------- rumenz.txt
> chattr +i rumenz.txt
> lsattr rumenz.txt
----i----------- rumenz.txt
尝试修改文件
> echo "rumenz.com" > rumenz.txt
-bash: rumenz.txt: Permission denied
提示没有权限
删除特殊i
权限
> chattr -i rumenz.txt
设置目录不能建立,移动和删除文件
> mkdir rumenz && touch rumenz/1.txt
> tree
.
└── rumenz
└── 1.txt
> lsattr rumenz/
---------------- rumenz/1.txt
> chattr +i -R rumenz/
> lsattr rumenz/
----i----------- rumenz/1.txt
在rumenz
目录下创建目录
> mkdir rumenz/one
mkdir: cannot create directory ‘rumenz/one’: Permission denied
提示权限不足
在rumenz/1.txt
文件中添加数据
> echo "rumenz.com" > rumenz/1.txt
-bash: rumenz/1.txt: Permission denied
删除特殊i
权限
> chattr -i -R rumenz
设置文件只能添加数据,不能修改,删除,移动该文件
> lsattr rumenz.txt
---------------- rumenz.txt
> chattr +a rumenz.txt
> lsattr rumenz.txt
-----a---------- rumenz.txt
修改rumenz.txt文件内容
> echo "rumenz.com" > rumenz.txt
-bash: rumenz.txt: Operation not permitted
> echo "rumenz.com" >> rumenz.txt
修改覆盖
rumenz.txt
文件内容不行,向后追加可以。
修改文件名
> mv rumenz.txt one.txt
mv: cannot move ‘rumenz.txt’ to ‘one.txt’: Operation not permitted
提示权限不足
设置rumenz
目录下只能添加目录,文件,但是不能对里面的文件夹,文件修改,移动,删除。
> chattr +a -R rumenz
> lsattr rumenz/
-----a---------- rumenz/1.txt
在rumenz
目录下创建one
> mkdir rumenz/one
将rumenz/one
目录重命名
> mv rumenz/one rumenz/tow
mv: cannot move ‘rumenz/one’ to ‘rumenz/tow’: Operation not permitted
在rumenz
目录下创建文件
> touch rumenz/3.txt
> ls rumenz/
1.txt 3.txt one
不能删除rumenz/3.txt
文件
> rm -rf rumenz/3.txt
rm: cannot remove ‘rumenz/3.txt’: Operation not permitted
不能被删除
可以修改rumenz/3.txt
文件内容
> echo "rumenz.com" > rumenz/3.txt
> cat rumenz/3.txt
rumenz.com
原文链接:https://rumenz.com/rumenbiji/linux-chattr-lsattr.html
微信公众号:入门小站
- 回复【1001】获取 linux常用命令速查手册
- 回复【10010】获取 阿里云ECS运维Linux系统诊断
- 回复【10012】获取 Linux学习笔记【强悍总结值得一看】
- 回复【10013】获取 shell简明教程
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)