AIX 批量更改密码
使用 chpasswd
可以使用 chpasswd 方便地更改单个或多个账户密码。这意味着不需要像平时一样在命令行上重复输入密码。尽管可以以交互方式使用 chpasswd,但是我建议以非交互方式使用它。使用 chpasswd 是一种快速更改密码的方法。
使用 chpasswd 的格式是:
chpasswd -f <pwdadm flags> -c
其中:
-f 可以解析 pwdadm 标志
-c 清除密码标志
从标准输入读取以下格式的用户名和密码:
user_name:user_password
我将演示使用 chpasswd 为这些用户设置初始密码的两种方法。在下面的示例中,在命令行上回显用户名 alpha 和密码 mypasswd,然后通过管道连接到 chpasswd:
echo "alpha:mypasswd" | chpasswd
现在,通过 pwdadm 查询用户 alpha,可以看到已经设置了标志值 ADMCHG,这是重新设置密码时 chpasswd 的默认设置:
# pwdadm -q alpha alpha: lastupdate = 1265765265 flags = ADMCHG
ADMCHG 表示当用户 alpha 下一次尝试用设置的初始密码 (mypasswd) 登录时,会强迫用户 alpha 更改密码。这也适用于设置了 ADMCHG 标志的其他账户。
还可以用保存在文件中的信息更改密码。例如,考虑 pass 文件中的以下内容:
# cat pass bravo:bravpass charlie:charpass
在前面的 pass 文件中,用户 bravo 将把密码改为 bravpass,用户 charlie 将把密码改为 charpass。要想执行密码更改,只需对这个文件执行 cat 并通过管道连接到 chpasswd,如下所示:
# cat pass | chpasswd
还可以把文件重定向到 chpasswd 进行处理。在这个示例中,通过指定 'c-' 选项(清除密码标志),指定用户 bravo 和 charlie 不必更改密码,如下所示:
# 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