
以上例建立的ilvoeyou3帐号为例,chage -l iloveyou3,会显示最近修改帐号的日期、密码过期日期,密码失效日期,账户失效信息等。
chage -ldEImMW
-l 显示详细的密码参数。
-d后接日期,最近一次修改密码的日期(shadow第3字段)
-E后接日期,账号失效日期(shadow第8字段)
-I后接天数,密码失效日期(shadow第7字段)
-m后接天数,密码最短保留天数(shadow第4字段)
-M后接天数,密码多久必须进行更改(shadow第5字段)
-W后接天数,密码过期警告日期(shadow第6字段)
passwd -l -u –stdin -S -n -x -w -i 帐号
-l 代表lock,让密码失效,会在/etc/passwd第二个字段加上!
-u 解锁的意思,unlock,与-l相反。
–stdin 管道修改密码
-S 列出密码相关参数。
-n 接天数,shadow第4字段,多久不能修改密码。
-x 接天数,shadow第5字段,多久必须改密码。
-w 接天数,shadow第6字段,密码过期警告天数。
-i 后接日期,shadow第7字段,密码失效日期。
示例如下:
echo “iloveyou123” | passwd –stdin iloveyou3

不过用这个方法设置的linux用户密码,缺点是密码会保留在命令中,如果系统被攻破,可以在/root/.bash_history里查看到这个密码,如下图。

[root@netcn ~]# head -n 4 /etc/gshadow
root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm
第一个字段:用户组名。
第二个字段:密码列。
第三个字段:用户组管理员帐号。
第四个字段:用户组的所属帐号。
[root@netcn /]# useradd unixftp
[root@netcn /]# usermod -G users unixftp
[root@netcn /]# grep unixftp /etc/passwd /etc/group /etc/gshadow
/etc/passwd:unixftp:x:502:502::/home/unixftp:/bin/bash
/etc/group:users:x:100:unixftp 次要用户组。
/etc/group:unixftp:x:502: 初始用户组,默认。
/etc/gshadow:users:::unixftp 次要用户组。
/etc/gshadow:unixftp:!::
如上,unixftp同属unixftp,users两个用户组,那新建一个文件,到底此文件的用户组为哪个好呢?此时需要看有效用户组是哪个。以本例来看,用unixftp登录,输入命令groups,可以查看改用户的用户组,第一个用户组为有效用户组。

head -n 4 /etc/shadow
root:$1$G4Zb3pwj$4eOhvqOo0FvVmy/CfGWCk.:15539:0:99999:7:::
bin:*:15336:0:99999:7:::
daemon:*:15336:0:99999:7:::
adm:*:15336:0:99999:7:::
上面查询/etc/shadow里面前4个账户的密码情况,以root用户为例,第一个字段为账号名,和/etc/passwd里的账户名对应一致,第二个字段为密码,第三个字段为最近更动密码的日期,具体计算方法为:echo $(($(date –date=”2012-07-18″ +%s)/86400 +1))得出数字15539,我这个测试服务器是昨天修改的密码,意味着距离1970年1月1日有15539天了。
第4个字段为密码不可被改动的天数(和第3字段相比),防止密码老被修改,默认的0代表可以随意修改。
第5个字段表示密码需要定期更改的天数(和第3个字段相比),99999代表273年内都不用强制修改密码。
第6个字段,是和第5个字段相比,密码需要更改的警告天数,上面的例子意思是密码到期之前的7天内,系统会警告用户更改密码。
第7个字段,密码失效日,和第5个字段比,如果密码过期后,还会有段时间宽限让您修改密码,如果过了这个宽限期,密码就失效了。
第8个字段是帐号失效日,以1970年1月1日为基数,超过多少天,帐号失效,不论密码是否过期,失效的帐号均无法使用。
第9个字段是保留字段,看今后有没有新的功能加入。
最新评论