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

  

posted @ 2014-08-15 16:12  孙愚  阅读(6748)  评论(0编辑  收藏  举报