我们通过chattr来锁定一个文件为不可修改或不可删除时,要用到chattr的+i数;这在ext2和ext3文件系统是有效的,但在reiserfs文件系统是没有任何效果的;
8种模式:
a:让文件或目录仅供附加用途。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防以外删除。
语法:
chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]
参数:
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示指令执行过程。
+<属性> 开启文件或目录的该项属性。
-<属性> 关闭文件或目录的该项属性。
=<属性> 指定文件或目录的该项属性。
命令示例:
1
2
3
4
5
6
7
8
9
|
[root@w zdw] # chattr +a test.sh
[root@w zdw] # rm -f test.sh
rm : cannot remove ` test .sh': Operation not permitted
[root@w zdw] # echo 11 >>test.sh
[root@w zdw] # echo 11 >>test.sh
[root@w zdw] # echo 11 >test.sh
- bash : test .sh: Operation not permitted
[root@w zdw] # lsattr test.sh
-----a-------e- test .sh
|
锁定关键的系统文件可以增加系统的安全性,使用chattr命令来锁定,下面是几个需要锁定的文件:
chattr +i /etc/passwd 用户文件
chattr +i /etc/shadow 用户密码文件
chattr +i /etc/group 用户组文件
chattr +i /etc/gshadow 主密码文件
chattr +i /etc/inittab 开机启动的重要文件
示例:
加锁:
1
2
3
4
5
|
[root@localhost ~] # chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[root@localhost ~] # rm -f /etc/passwd
rm : cannot remove '/etc/passwd' : Operation not permitted
[root@localhost ~] # useradd test1
useradd : cannot open /etc/passwd
|
解锁:
1
|
[root@localhost ~] # chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
|
注:非法用法也可以使用chattr -i来解锁。我们可以把chattr换成别的名称,这样就找不到了。如下
修改chattr名称:
1
2
3
4
5
6
7
8
|
[root@localhost ~] # which chattr 找到chattr在哪
/usr/bin/chattr [root@localhost ~] # mv /usr/bin/chattr /usr/bin/zdw 把chattr换成zdw
[root@localhost ~] # chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
- bash : /usr/bin/chattr : 2‰é£a–– 用chattr解锁不成功
[root@localhost ~] # zdw -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[root@localhost ~] # useradd test1 用zdw解锁成功,添加新用户成功
[root@localhost ~] #
|
查看是否加锁:
1
2
3
4
5
6
|
[root@localhost ~] # zdw +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[root@localhost ~] # lsattr /etc/passwd 查看是否加锁用lsattr命令
----i----------- /etc/passwd 如果有i就说明加锁了
[root@localhost ~] # zdw -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[root@localhost ~] # lsattr /etc/passwd
---------------- /etc/passwd 没有i就说明没有加锁
|
本文转自cix123 51CTO博客,原文链接:http://blog.51cto.com/zhaodongwei/1766589,如需转载请自行联系原作者