前言
先来了解一下 /etc/shadow 的格式:
[root@localhost ~]# cat /etc/shadow | grep yejr yejr:$1$e0l45aJc$B3pfnFsKsxRFpI9apJ8mS1:13746:0:99999:7:::
类似 /etc/passwd,/etc/shadow 档的每一个栏位也是由 ":" 冒号所分开,意义如下:
使用者名称,最多 8 个符号,可以用大小写,通常都是小写。直接对应 /etc/passwd 档案中的使用者名称。 密码,加密过的 13 个字元。空格 (就是 ::) 表示登入时不需密码 (不是个好主意),"*" 项目 (就是 :*:) 指出帐号已经关闭。 密码最後一次变更起所经过的日数 (从 1970-1-1 起 ) 密码经过几天可以变更 (0 表示可以随时变更) 密码经过几天必须变更 (99999 表示使用者可以保留他们的密码很多很多年不变) 密码过期之前几天开始要警告使用者 密码过期几天后帐号会被取消 从 1970-1-1 起,帐号经过几天会被取消 保留位
了解了之后,就开始吧。
1. 修改 /etc/login.defs
# Password aging controls: # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_MIN_LEN Minimum acceptable password length. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAYS 42 PASS_MIN_DAYS 0 PASS_MIN_LEN 8 PASS_WARN_AGE 10
即,密码有效期42天,密码最小长度8位,密码过期前10天开始提醒。
2. 修改现有账户的过期时间间隔
[root@localhost ~]# passwd -x 42 -w 10 yejr Adjusting aging data for user yejr. passwd: Success
即,修改现行账户中的yejr,密码最长有效期42天,过期前10天开始提醒。
3. 修改现有账户的最后密码修改时间
[root@localhost ~]# cat /etc/shadow | grep yejr yejr:$1$e0l45aJc$B3pfnFsKsxRFpI9apJ8mS1:13746:0:99999:7:::
可以看到,帐号yejr是 2007-08-21 最后一次修改密码的,且他的密码是永久有效的。我们来手工编辑一下,修改成类似如下内容:
[root@localhost ~]# /usr/sbin/vipw yejr:$1$e0l45aJc$B3pfnFsKsxRFpI9apJ8mS1:14012:0:42:10:::
即,帐号yejr最后一次修改时间是 2008-05-13,密码最长有效期是 42 天,密码过期前 10 天开始提醒。
以上操作在 Red Hat Enterprise Linux AS release 4 (Nahant Update 6) 上通过。
本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/308632,如需转载请自行联系原作者