今天在做用户添加操作时,
#useradd test
useradd: cannot open shadow password file
刚开始怀疑是/etc/shadow文件权限被误修改,查看/etc/passwd,/etc/shadow属性
[root@mango root]# ls -rlt /etc/passwd
-rw-r--r-- 1 root root 1726 4月 20 17:43 /etc/passwd
[root@mango root]# ls -rlt /etc/shadow
-r-------- 1 root root 1262 4月 20 17:43 /etc/shadow
正常可添加用户的属性如下,没什么区别.
ls -rlt /etc/passwd
-rw-r--r-- 1 root root 1831 2005-05-09 /etc/passwd
[guest@www5 guest]$ ls -rlt /etc/shadow
-r-------- 1 root root 1294 2005-05-09 /etc/shadow
尝试将出问题主机的/etc/shadow改成600,结果报错,不让修改!
[root@mango root]# chmod 600 /etc/shadow
can not modify
问了下安全专员,才知道是做了安全加固,用lsattr和chsttr改变一下属性就可以了!
[root@toddy root]#lsattr /etc/shadow
----i-------- /etc/shadow
[root@toddy root]# chattr -i /etc/shadow
[root@toddy root]# useradd ywg
[root@toddy root]# lsattr /etc/passwd
关于chattr 命令使用详解http://linux.chinaitlab.com/command/38018.html
chattr
1.作用
修改ext2和ext3文件系统属性(attribute),使用权限超级用户。
2.格式
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录
3.主要参数
-R:递归处理所有的文件及子目录。
-V:详细显示修改内容,并打印输出。
-:失效属性。
+:激活属性。
= :指定属性。
A:Atime,告诉系统不要修改对这个文件的最后访问时间。
S:Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i:Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
D:检查压缩文件中的错误。
d:No dump,在进行文件系统备份时,dump程序将忽略这个文件。
C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
u:Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。
4.说明
chattr 命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。
chattr
http://www.linuxmine.com/2452.html
chattr可以防止关键文件被修改
在linux下,有些配置文件是不允许任何人包括root修改的,为了防止被误删除或修改,
可以设定该文件的"不可修改位(immutable)"。
例如:
chattr +i /etc/fstab
如果需要修改文件则:
chattr -i /etc/fstab
以后再修改文件。