认识linux系统的chattr和lsattr命令,附实例
前言
在前些天,解决《金山云服务器处理2t3ik与ddgs病毒实录》问题中有提及到,病毒通过crontab执行shell脚本,在/tmp文件夹中自动创建了2t3ik.p、2t3ik.m、ddgs.3011文件。解决方法是将shell脚本自动创建的2t3ik.p、2t3ik.m、ddgs.3011文件删除,自己手动利用touch命令创建空文件,并通过chattr +i 命令使创建的文件受到保护,不被其他程序篡改,得以终止了病毒文件的执行。
cd /tmp/
rm -rf 2t3ik* //删除2t3ik文件
rm -rf ddgs*
touch 2t3ik.p //自己创建空文件
touch 2t3ik.m
touch ddgs.3011
chattr +i 2t3ik* //保护文件不被修改
chattr +i ddgs*
今天回过头来详细介绍一下chattr命令相关属性以及lsattr的使用。
正文
chattr和chmod类似,用来改变文件的属性。该指令可以改变存放在ext2文件系统上的文件或目录。和chmod相比,chmod只是修改文件的读写、执行权限,更底层的属性控制则是由chattr来改变的。
语法:chattr (选项) (文件)
模式
a:让文件或目录仅供追加内容的属性;
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。
选项
-R:递归处理,将指令目录下的所有文件及子目录一并处理;
-v<版本编号>:设置文件或目录版本;
-V:显示指令执行过程;
+模式:开启文件或目录的该项模式;
-模式:关闭文件或目录的该项模式;
=模式:指定文件或目录的该项模式。
实例
1、保护文件,防止被修改、移除、删除等操作。
chattr +i index.txt
设置后,文件index.txt不可被编辑,删除,移除。会提示“Operation not permitted”。
2、设置文件只能追加内容,不可删除。
chattr +a index.txt
设置后,不可删除。只能向文件中追加内容。适用于特定情况的日志文件。
lsattr属性
上面设置好了文件的属性,可以通过lsattr来查看文件属性。“lsattr 文件”
#lsattr index.txt
----ia-------e- index.txt
上面实例中,通过lsattr查看index.txt的属性,发现文件具有iae属性。其中i为保护,a为限制仅可做追加操作。
(ps:当文件即具体有i属性,也具有a属性,两个权限部分冲突时,文件仍不可追加。所以要设置好文件的正确属性,增加属性时,要将冲突的属性移除)。