做linux安全时,做了这一步:
4.口令文件
chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。
# chattr +i /etc/passwd
# chattr +i /etc/shadow
# chattr +i /etc/group
# chattr +i /etc/gshadow
和
同时,创建一个普通登录用户,并取消直接root登录
# useradd 'username'
# passwd 'username'
# vi /etc/ssh/sshd_config
PermitRootLogin no #取消root直接远程登录
在useradd的时候,报标题错误。
其实,执行上面的chattr +i命令时,已经把这4个文件都变成不可写的了,就算看了文件属性上写的是root用户可读写,此文件还是无法被root用户写。所以如果想添加新用户,必须先把这4个文件上的限制减掉:
# chattr -i /etc/passwd
# chattr -i /etc/shadow
# chattr -i /etc/group
# chattr -i /etc/gshadow
然后再useradd就可以了。(注意,useradd之后,应该还是把+i加上,为了linux的安全)
下面是增加用户的语句:
#useradd -d /home/wanglilin wanglilin
# passwd wanglilin
(别人的解释:)
造成这个现象的原因是/etc/passwd文件的ext2文件属性被修改(但即便是在ext3系统中,这个属性也有效果。目前还没在ext4文件系统中测试)。使用lsattr可以查看该文件的属性:
该文件被设置了"i"属性,该属性指定当前文件不可被修改,在手册中对此属性的描述为(man chattr):
使用chattr去掉相关文件的"i"属性(我的系统中,/etc/shadow也被设置了"i"属性):
扩展:
Linux下如何创建新用户通常情况下,处于安全考虑,一般都给自己创建一个普通用户,而不直接使用root用户,因为权限大了,误操作就容易带来无法弥补的损失。Linux系统中,只有root用户有创建其他用户的权限。
创建过程如下:
useradd -d /home/wanglilin wanglilin
useradd -d /home/wanglilin -g 0 -G 0,1,3,4,6,10 -u 500 -r -p Love wanglilin
第一种添加方法设定了该用户的主目录和用户名,第二中添加方法除了指定了第一中方法所指定的功能之外,还指定了用户的组id以及一系列的所属组的id,用户id,密码等;
但是光这样还不够,还得为用户显式设定密码(即使是第二中方法也不例外,因为这时使用Love作为密码去登录系统,仍然无法登录),命令为passwd username;
[root@localhost ~]# passwd wanglilin
Changing password for user wanglilin.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
这时登录系统的话,会提示用户主目录没有创建,因此还缺少一个步骤,那就是为相应用户创建一个属于该用户的主目录,创建的时候需要注意,由于新用户的主目录是由root先创建的,可是,Linux系统需要主目录的拥有者必须是用户本身,因此,使用root创建主目录以后,还需将拥有者更换成新用户本身。命令如下:
mkdir -p /home/wanglilin
chown newuser:newuser /home/wanglilin
搞定!这下可以使用wanglilin登录了。。。
chattr和lsattr命令说明及示例
chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多 功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令 修改属性能够提高系统的安全 性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var 目录。 lsattr比较简单,只是显示文件的属性
[root]#lsattr----ia---j--- ./lsattr_test
这两个命令是用来改变文件、目录属性的,和chmod,ls这些命令相比,chmod只是改变文件的读写、执行权限, 更底层的属性控制是由chattr来改变的。 chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files... 最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的 属性。 + :在原有参数设定基础上,追加参数。- :在原有参数设定基础上,移除参数。
应用实例一:
1、用chattr命令防止系统中某个关键文件被修改
# chattr +i /etc/fstab 然后试一下rm mv rename等命令操作于该文件,都是得到Operation not permitted 的结果 2、让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作 # chattr +a /data1/user_act.log 应用实例二:
[root@ticket-A ~]# passwd root Changing password for user root. New UNIX password: Retype new UNIX password: Sorry, passwords do not match New UNIX password: Retype new UNIX password: passwd: Authentication token manipulation error有的说是根目录空间满,或者是密码文件的权限的问题如果以前对系统做安全配置,把/etc/passwd, /etc/shadow 改为不可修改那就需要取消之前的修改,如下:[root@station22 ~]# lsattr /etc/passwd /etc/shadow ----i-------- /etc/passwd ----i-------- /etc/shadow[root@station22 ~]# chattr -i /etc/passwd [root@station22 ~]# chattr -i/etc/shadow[root@station22 ~]# lsattr /etc/passwd /etc/shadow ------------- /etc/passwd ------------- /etc/shadow再修改root的密码就可以。修改完之后,再执行[root@station22 ~]# chattr +i /etc/passwd [root@station22 ~]# chattr +i/etc/shadow