使用chattr保护linux系统
chattr的作用就是修改ext3/ext2文件系统的权限,它只能被超级用户使用,它的功能就是设置文件的隐藏属性,隐藏属性的设置对系统的安全性是有很大帮助的.
chattr的用法:
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录
主要参数
-R:递归处理所有的文件及子目录.
-V:详细显示修改内容,并打印输出.
-:失效属性.
+:激活属性.
= :指定属性.
A:Atime,告诉系统不要修改对这个文件的最后访问时间.
S:Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘.
a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件.如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件.
i:Immutable,系统不允许对这个文件进行任何的修改.如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件.
D:检查压缩文件中的错误.
d:No dump,在进行文件系统备份时,dump程序将忽略这个文件.
C:Compress,系统以透明的方式压缩这个文件.从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘.
s:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域.
u:Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件.
但是其中常用的的选项只有a和i两个.
下面来说下怎么保护系统文件:
touch abc
chattr +i abc
lsattr abc
----i-------- abc
rm -f abc
rm: cannot remove `abc': Operation not permitted
这样就达到无法删除文件的效果,要删除的话可以使用下面的命令:
chattr -i abc
lsattr abc
------------- abc
rm -f abc
这样就可以删除了,上面说了使用chattr保护文件,接下来是保护文件夹
mkdir abc
chattr -R +i abc
lsattr -a abc
------------- abc/..
----i-------- abc/.
rm -fr abc
rm: cannot remove directory `abc': Operation not permitted
可以看到也是无法删除abc的,这里补充下使用chattr -R +i对abc这个文件夹的话,如果想往里面写文件也是不可以的,如果是网站程序的话,最好是只针对有静态文件的文件夹,并且是不经常修改的最好.
评论: