在服务器的系统里有很多关键的文件是不允许修改,以防止其他用户或者入侵者修改关键的文件,但是在实际生产环境中往往很多管理人员都没有注意这一点,这导致系统文件有会被改的可能性,如此就需要我们平时的对关键的文件加锁管理了,在系统中要加锁的关键文件,当然还有重要的不能被修改的文件也要加锁
[root@test test]# chattr +i /etc/passwd#用户关键信息文件
[root@test test]# chattr +i /etc/shadow#用户影子文件,存放用户的密文密码
[root@test test]# chattr +i /etc/gshadow#组影子文件
[root@test test]# chattr +i /etc/group#组文件
[root@test test]# chattr +i /etc/services#系统默认端口文件
加锁后连root用户都是无法对文件删除和修改的,其中chattr的使用参数和模式如下:
这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
a:让文件或目录仅供附加用途。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防以外删除。
参数:
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示指令执行过程。
+<属性> 开启文件或目录的该项属性。
-<属性> 关闭文件或目录的该项属性。
=<属性> 指定文件或目录的该项属性。
但是如果有时要添加新用户的时候怎么办,或者有些明明有权限的文件不能被修改是为什么
[root@test test]# useradd test1
useradd:无法打开密码文件
我们可以看下用lsattr看下/etc/passwd文件的隐藏属性,像这样的都是被加锁过的文件
[root@test test]# lsattr /etc/passwd
----i-------- /etc/passwd
-a 显示所有文件和目录,包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".."。
-d 显示,目录名称,而非其内容。
-l 此参数目前没有任何作用。
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v 显示文件或目录版本。
-V 显示版本信息。
[root@test test]# chattr -i /etc/passwd