每天一个Linux命令之 chattr

每天一个Linux命令之 chattr

chattr命令可以对文件或者文件夹进行属性修改,只有 root 用户可以使用,这个命令是一个很有用的命令,可以避免很多麻烦

属性选项功能 (本文只讲最重要的i属性和a属性)

如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;
如果对目录设置 i 属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件;

如果对文件设置 a 属性,

那么只能在文件中増加数据,但是不能删除和修改数据;
如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除文件;

其主要的用法可以实现一些简单的防篡改功能

比如实现目录dir下无法删除创建文件 (注意,目录下已经存在的文件如果没有+i则可以被编辑,但无法删除)

[root@localhost ~ -> ]# mkdir dir
[root@localhost ~ -> ]# chattr +i dir 
[root@localhost /root/dir -> ]# touch a 
touch: 无法创建"a": 权限不够
[1root@localhost /root/dir -> ]# mkdir d
mkdir: 无法创建目录"d": 权限不够

比如实现文件无法修改删除

[root@localhost /root/dir -> ]# touch test
[root@localhost /root/dir -> ]# chattr +i test  
[root@localhost /root/dir -> ]# echo hello > test
zsh: 权限不够: test
[1root@localhost /root/dir -> ]# touch test
touch: 无法创建"test": 权限不够

如果将目录和目录下文件同时增加i 属性,就实现了最简单的防篡改功能

给设置有 i 属性的文件删除此属性也很简单,只需将 chattr 命令中 + 改为 - 即可。



演示 a 属性的作用

那么只能在文件中増加数据,但是不能删除和修改数据;

[root@localhost ~ -> ]# chattr +a dir
[root@localhost ~ -> ]# cd dir
[root@localhost /root/dir -> ]# touch a
[root@localhost /root/dir -> ]# rm -rf a
rm: 无法删除"a": 不允许的操作
[root@localhost /root/dir -> ]# chattr +a a  
[root@localhost /root/dir -> ]# echo 123 > a
zsh: 不允许的操作: a
[1root@localhost /root/dir -> ]# echo 123 >> a
[root@localhost /root/dir -> ]# cat a
123

这个a属性就跟貔貅一样,只进不出

如果有对linux比较有兴趣的朋友,请大家点个关注,互相学习

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章