chattr命令保护关键文件

玩Linux的时候,有些文件使用root权限都不能修改和删除,这是什么缘由呢?大可能是由于曾经使用过chattr命令锁定过该文件。chattr命令可以修改文件高级属性,这能够提升系统的安全性哦!web


知识储备安全


  • ls -l显示的文件属性只能包含读、写、执行这类基本属性bash

  • chmod可以定义3类用户:属主、属组、其余用户的各自3种权限:读、写、执行服务器

  • chattr可以修改文件的高级属性,包括IO同步、删除保护、写入保护等等app

  • lsattr用来查看文件的高级属性的ide


chattr用法spa


Usage:chattr [-RVf] [-v version] [mode] files...3d

Mode:+-= [acdeijstuADST].日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
blog


+ :在原属性基础上,添加属性。
- :在原属性基础上,移除属性。
= :将文件的高级属性指定为,这个操做会覆盖原有任何高级属性

属性选项:
A:文件的 atime时间戳 可被修改(modified)。--->通常web服务器上,文件的atime都是关闭的,避免频繁修改占用IO资源

S:硬盘I/O同步选项,功能相似sync。

a:即append,设定该参数后,只能添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。

c:即compresse,设定文件是否经压缩后再存储。读取时须要通过自动解压操做。

d:即no dump,设定文件不能成为dump程序的备份目标。

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

j:即journal,设定此参数使得当经过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。若是filesystem被设定参数为 data=journal,则该参数自动失效。

s:保密性地删除文件或目录,即硬盘空间被所有收回。

u:与s相反,当设定为u时,数据内容其实还存在磁盘中,能够用于undeletion。

各参数选项中经常使用到的是a和i:
<1> a选项强制只可添加不可删除,多用于日志系统的安全设定。
<
2> 而i是更为严格的安全设定,只有superuser (root) 或具备CAP_LINUX_IMMUTABLE处理能力(标识)的进程可以施加该选项。


实例1:参数i对系统关键文件/etc/fstab作保护防止篡改、删除等!

#chattr +i /etc/fstab

wKioL1YI3RCCRXV7AAaBOO91OoY235.bmp


实例2:参数a对日志追踪类文件作安全策略!日志只可追加数据,不可修改,不能够删除!

wKiom1YI4SCDXK45AAtLeBdNE48939.bmp

  • >>追加没问题,>覆盖提示权限拒绝,此处我是root用户哦!

  • rm -f强制删除被拒绝!不可删除

  • split切割没问题,本质上切割并不会对原文件开刀,因此不会影响的!


实例3:经过lsattr查看文件or目录的高级属性

#lsattr [-RVadlv] [files...]

wKioL1YI36yjnE09AAPfmOZNVQ8743.bmp


最后一点总结:


  • chattr所修改的文件高级属性,对目录一样适用,可是这些高级属性受到Kernel版本支持!

  • 可使用chattr +i选项锁定那些系统的、不更改的文件,颇有效哦!

  • 对于目录/ /dev /proc /tmp /var等不可以保护!

相关文章
相关标签/搜索