可使用 chpasswd 方便地更改单个或多个帐户密码。这意味着不须要像平时同样在命令行上重复输入密码。尽管能够以交互方式使用 chpasswd,可是我建议以非交互方式使用它。使用 chpasswd 是一种快速更改密码的方法。html
使用 chpasswd 的格式是:linux
chpasswd -f <pwdadm flags> -c
其中:
-f 能够解析 pwdadm 标志
-c 清除密码标志命令行
从标准输入读取如下格式的用户名和密码:code
user_name:user_password
我将演示使用 chpasswd 为这些用户设置初始密码的两种方法。在下面的示例中,在命令行上回显用户名 alpha 和密码 mypasswd,而后经过管道链接到 chpasswd:htm
echo "alpha:mypasswd" | chpasswd
如今,经过 pwdadm 查询用户 alpha,能够看到已经设置了标志值 ADMCHG,这是从新设置密码时 chpasswd 的默认设置:blog
# pwdadm -q alpha alpha: lastupdate = 1265765265 flags = ADMCHG
ADMCHG 表示当用户 alpha 下一次尝试用设置的初始密码 (mypasswd) 登陆时,会强迫用户 alpha 更改密码。这也适用于设置了 ADMCHG 标志的其余帐户。it
还能够用保存在文件中的信息更改密码。例如,考虑 pass 文件中的如下内容:io
# cat pass bravo:bravpass charlie:charpass
在前面的 pass 文件中,用户 bravo 将把密码改成 bravpass,用户 charlie 将把密码改成 charpass。要想执行密码更改,只需对这个文件执行 cat 并经过管道链接到 chpasswd,以下所示:ast
# cat pass | chpasswd
还能够把文件重定向到 chpasswd 进行处理。在这个示例中,经过指定 'c-' 选项(清除密码标志),指定用户 bravo 和 charlie 没必要更改密码,以下所示:class
# chpasswd -c < pass
使用 pwdadm 查询用户 charlie,会产生如下输出:
# pwdadm -q charlie charlie: lastupdate = 1265853052
注意 chpasswd 命令中的清除标志选项;它清除字段中的全部标志值。
pwdadm 输出中的 lastupdate 值表示最近设置或更改密码的时间。以秒为单位的 UTC 时间戳须要转换为更有意义的日期时间戳。
下面两个命令都返回最近更新或初始设置密码的时间(若是有密码的话)。在这个示例中,查询用户 alpha 最近的密码更新:
# lssec -f /etc/security/passwd -s alpha -a lastupdate alpha lastupdate=1265940457 # pwdadm -q alpha alpha: lastupdate = 1265940457 flags = ADMCHG
可使用 perl 或 gawk 把 UTC 转换为日期时间戳,下面两个示例产生相同的结果:
# perl -e 'use POSIX;print ctime(1265940457)' Thu Feb 11 20:07:37 2010 # gawk 'BEGIN {print strftime("%c",1265940457)}' Thu Feb 11 20:07:37 GMT 2010
官方地址:http://www.ibm.com/developerworks/cn/aix/library/au-chpasspwgen.html
redhat linux 更改密码:echo "NewPasswd" | passwd --stdin username