chattr 改变文件的扩展属性

1. 命令功能

chattr和lsattr用来改变文件、目录属性和查看这种文件属性;chmod只是改变文件的读、写、执行权限,更底层的属性控制是由chattr来改变。

2. 语法格式

chattr [ -RVf ] [ -v version ] [ mode ] files.

关键说明:

[mode]部分由+-=和[ASacDdIijsTtu]字符组成,这部分用来控制文件属性。

参数

参数说明

+

在原有参数设定基础上,追加参数

-

在原有参数设定基础上,移除参数

=

更新为指定参数设定

A

文件或目录的atime(access time)不可被修改

a

append,只能向文件中添加数据,而不能删除,用于服务器日志安全,只有root才能设定这个权限

c

compresse,设定文件是否压缩后在存储,读取时需要经过自动解压操作。

i

设定文件不能被删除,改名,设定链接关系,同时不能写入或新增内容,i参数对于文件系统安全设置有较大帮助。

s

保密性删除文件或目录,及硬盘空间被全部回收。

3. 使用范例

范例1:chattr防止系统中某个关键文件被修改

[root@localhost data]# cp /etc/resolv.conf .

[root@localhost data]# chattr +i resolv.conf    #给文件加上不能被改变权限属性

[root@localhost data]# echo "hello world" >> resolv.conf   #不能追加内容

-bash: resolv.conf: Permission denied

[root@localhost data]# rm resolv.conf                   #不能删除

rm: remove regular file `resolv.conf'? y

rm: cannot remove `resolv.conf': Operation not permitted

[root@localhost data]# mv resolv.conf resolv.conf.bak      #不能改名

mv: cannot move `resolv.conf' to `resolv.conf.bak': Operation not permitted

范例2:取消 -i权限

[root@localhost data]# chattr -i resolv.conf

[root@localhost data]# echo 'hello'  >> resolv.conf

[root@localhost data]# cat resolv.conf

nameserver 114.114.114.114

nameserver 61.128.128.68

hello world

hello

范例3:只能追加,不能删除,适用于日志

[root@localhost data]# chattr +a resolv.conf

[root@localhost data]# echo "123" >> resolv.conf

[root@localhost data]# echo "456" > resolv.conf

-bash: resolv.conf: Operation not permitted    #删除报错

[root@localhost data]# cat resolv.conf

......

hello

123

原文地址:https://www.cnblogs.com/joechu/p/8664398.html