可使用 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