chattr维护文件特殊属性

版权声明:自我梳理及总结的内容,如果您需要转载请注明出处,非常感谢! https://blog.csdn.net/Smasegain/article/details/48230635

一.命令说明
chattr主要用于修改文件的特殊属性,用于控制文件的访问权限。语法如下:
chattr [-RVf] [{+|-|=}[ASacDdIijsTtu]] files
-R:递归修改文件夹下的所有子文件/文件夹;
-V:输出详细信息及程序版本;
-f:不输出错误信息;
+:表示在现有属性基础上增加目标属性;
-:表示在现有属性基础上移除目标属性;
=:表示将文件属性设置为目标属性
a:表示文件只能以追加内容模式打开,无法修改已有内容,只有root用户及有CAP_LINUX_IMMUTABLE权限的用户可以设置此属性;
i:表示文件被保护:不能删除,不能重命名,不能修改内容,不能创建link;只有root用户及有CAP_LINUX_IMMUTABLE用户可以设置此属性;
--其他mode不常用,可以参考man手册进行查看,大部分对都是对于文件的修改及磁盘同步的功能。

查看chattr设置的属性通过lsattr进行实现:
lsattr [ -RVadv ] [ files...  ]
-R:递归查看所有子文件夹/文件
-a:查看所有文件的属性,包含隐藏文件
-d:查看文件夹的属性,而不是文件夹里面的文件

二.范例说明
1).当前路径下output.log文件为用户操作输出日志,只允许用户追加内容且防止用户篡改-->可以通过添加a属性来实现:
-->下一条说明前为创建output.log并追加内容
[root@node110 ~]# touch output.log
[root@node110 ~]# echo clear > output.log
[root@node110 ~]# echo data >> output.log
[root@node110 ~]# cat output.log 
clear
data
-->下一条说明前为篡改测试
[root@node110 ~]# echo clear > output.log
[root@node110 ~]# cat output.log 
clear
-->下一条说明前为添加a属性
[root@node110 ~]# lsattr output.log 
-------------e- output.log
[root@node110 ~]# chattr +a output.log
[root@node110 ~]# lsattr output.log
-----a-------e- output.log
-->再次进行 数据追加及篡改测试
[root@node110 ~]# cat output.log 
clear
[root@node110 ~]# echo data1 >> output.log 
[root@node110 ~]# echo data2>> output.log 
[root@node110 ~]# cat output.log 
clear
data1
data2
[root@node110 ~]# echo clear > output.log 
-bash: output.log: Operation not permitted-->操纵不被允许。

2).Output.log操作完成后进行保护
[root@node110 ~]# chattr +i output.log 
[root@node110 ~]# lsattr output.log 
----ia-------e- output.log
[root@node110 ~]# ls -ltr
total 116
-rw-r--r--  1 root root    18 Sep  5 22:15 output.log
[root@node110 ~]# rm -rf output.log 
rm: cannot remove `output.log': Operation not permitted


猜你喜欢

转载自blog.csdn.net/Smasegain/article/details/48230635
今日推荐