文件安全性保障-chattr
2019-05-18 本文已影响0人
要厉害的
不常见但是很实用且高级的linux命令chattr。该命令的作用是改变linux文件的属性(change attributes)。主要目的是所有linux用户(即便超级用户)使用时也能确保重要的文件夹/文件不被错误或意外地改变、删除。相关命令有lsattr列出属性,和MacOS上的chflags。
chattr的语法
chattr [选项] [操作] [属性] [操作对象]
选项
-R 迭代方式遍历整个目录
-V 执行过程输出信息打印
操作
+ 增加属性设置
- 去掉属性设置
= 只保留某一属性
属性
A,atime在之后就不会被更新。一定程度上避免磁盘I/O。
a, 即append只允许文件以追加的方式写入。
c, 即compressed文件数据在写入磁盘时将被压缩。
i,即immutable可以确保设置的文件不会被删除、不可重命名、不可创建符号链接,只有超级用户取消该选项时,后续的改动操作才能继续。操作了相关CAP_LINUX_IMMUTABLE能力。
j, journal即对于日志型文件系统而言先记录日志,然后再写数据。
S,相当于同步,当文件修改之后会将内容同步到磁盘。
s,secure deletion安全删除,当拥有该文件的属性删除之后,所有块将设置为0,并写入磁盘。
目前支持chattr的文件系统有ext2、ext3、ext4、btrfs、xfs等,cifs不支持。目前ceph社区提到了支持chattr功能但是自15年至今并未有相关的更新。
ext4中对chattr属性支持举例(并未全部展示),如上面所说的s、c、S、i等。