正如 passwd 指令的名稱所示,其用于改變系統使用者的密碼。如果 passwd 指令由非 root 使用者執行,那麼它會詢問目前使用者的密碼,然後設定調用該指令的使用者的新密碼。當此指令由超級使用者 root 執行的話,就可以重新設定任何使用者的密碼,包括不知道目前密碼的使用者。
在這篇文章中,我們将用執行個體來介紹 passwd 指令。
文法:
# passwd {options} {user_name}
可以在 passwd 指令使用不同的選項,清單如下:
例1:更改系統使用者的密碼
當你使用非 root 使用者登入時,比如我使用 ‘linuxtechi’ 登入的情況下,運作 passwd 指令它會重置目前登入使用者的密碼。
[linuxtechi@linuxworld ~]$ passwd
changing password for user linuxtechi.
changing password for linuxtechi.
(current) unix password:
new password:
retype new password:
passwd: all authentication tokens updated successfully.
[linuxtechi@linuxworld ~]$
當你作為 root 使用者登入後并運作 passwd 指令時,它預設情況下會重新設定 root 的密碼,如果你在 passwd 指令後指定了使用者名,它會重置該使用者的密碼。
[root@linuxworld ~]# passwd
[root@linuxworld ~]# passwd linuxtechi
注意:系統使用者的密碼以加密的形式儲存在 /etc/shadow 檔案中。
例2:顯示密碼狀态資訊
要顯示使用者密碼的狀态資訊,請在 passwd 指令後使用 -s 選項。
[root@linuxworld ~]# passwd -s linuxtechi
linuxtechi ps 2015-09-20 0 99999 7 -1 (password set, sha512 crypt.)
[root@linuxworld ~]#
在上面的輸出中,第一個字段顯示的使用者名,第二個字段顯示密碼狀态(ps = 密碼設定,lk = 密碼鎖定,np = 無密碼),第三個字段顯示了上次修改密碼的時間,後面四個字段分别顯示了密碼能更改的最小期限和最大期限,警告期限和沒有使用該密碼的時長。
例3:顯示所有賬号的密碼狀态資訊
為了顯示所有使用者密碼的狀态資訊需要使用 “-as”選項在passwd 指令中,示例如下所示:
root@localhost:~# passwd -sa
(lctt譯注:不同發行版/passwd 的行為不同。centos6.6 沒有測試成功,但 ubuntu 可以。)
例4:使用 -d 選項删除使用者的密碼
用我做例子,删除 ‘linuxtechi‘ 使用者的密碼。
[root@linuxworld ~]# passwd -d linuxtechi
removing password for user linuxtechi.
passwd: success
linuxtechi np 2015-09-20 0 99999 7 -1 (empty password.)
“-d” 選項将清空使用者密碼,并禁用使用者登入。
例5:設定密碼立即過期
在 passwd 指令中使用 '-e' 選項會立即使使用者的密碼過期,這将強制使用者在下次登入時更改密碼。
[root@linuxworld ~]# passwd -e linuxtechi
expiring password for user linuxtechi.
linuxtechi ps 1970-01-01 0 99999 7 -1 (password set, sha512 crypt.)
現在嘗試用 linuxtechi 使用者 ssh 連接配接到主機。
例6:鎖定系統使用者的密碼
在 passwd 指令中使用 ‘-l‘ 選項能鎖定使用者的密碼,它會在密碼的起始位置加上“!”。當他/她的密碼被鎖定時,使用者将不能更改它的密碼。
[root@linuxworld ~]# passwd -l linuxtechi
locking password for user linuxtechi.
linuxtechi lk 2015-09-20 0 99999 7 -1 (password locked.)
例7:使用 -u 選項解鎖使用者密碼
[root@linuxworld ~]# passwd -u linuxtechi
unlocking password for user linuxtechi.
例8:使用 -i 選項設定非活動時間
在 passwd 指令中使用 -i 選項用于設定系統使用者的非活動時間。當使用者(我使用的是linuxtechi使用者)密碼過期後,使用者再經過 ‘n‘ 天後(在我的情況下是10天)沒有更改其密碼,使用者将不能登入。
[root@linuxworld ~]# passwd -i 10 linuxtechi
adjusting aging data for user linuxtechi.
linuxtechi ps 2015-09-20 0 99999 7 10 (password set, sha512 crypt.)
例9:使用 -n 選項設定密碼更改的最短時間
在下面的例子中,linuxtechi使用者必須在90天内更改密碼。0表示使用者可以在任何時候更改它的密碼。
[root@linuxworld ~]# passwd -n 90 linuxtechi
linuxtechi ps 2015-09-20 90 99999 7 10 (password set, sha512 crypt.)
例10:使用 -w 選項設定密碼過期前的警告期限
‘-w’ 選項在 passwd 指令中用于設定使用者的警告期限。這意味着,n天之後,他/她的密碼将過期。
[root@linuxworld ~]# passwd -w 12 linuxtechi
linuxtechi ps 2015-09-20 90 99999 12 10 (password set, sha512 crypt.)
作者:pradeep kumar
來源:51cto