先來回顧一下passwd命令的基本用法:
Linux passwd命令用來更改使用者的密碼
語法
passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
必要參數:
-d 刪除密碼
-f 強制執行
-k 更新只能發送在過期之後
-l 停止賬號使用
-S 顯示密碼信息
-u 啟用已被停止的賬戶
-x 設置密碼的有效期
-g 修改群組密碼
-i 過期後停止用戶賬號
選擇參數:
--help 顯示幫助信息
--version 顯示版本信息
實例
修改用戶密碼
復制代碼代碼如下:
# passwd w3cschool //設置w3cschool用戶的密碼
Enter new UNIX password: //輸入新密碼,輸入的密碼無回顯
Retype new UNIX password: //確認密碼
passwd: password updated successfully
#
顯示賬號密碼信息
復制代碼代碼如下:
# passwd -S w3cschool
w3cschool P 05/13/2010 0 99999 7 -1
刪除用戶密碼
復制代碼代碼如下:
# passwd -d lx138
passwd: password expiry information changed.
好的,接下來來看一下實際的應用場合:
例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
[root@linuxworld ~]#
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi NP 2015-09-20 0 99999 7 -1 (Empty password.)
[root@linuxworld ~]#
“-d” 選項將清空用戶密碼,並禁用用戶登錄。
例5:設置密碼立即過期
在 passwd 命令中使用 '-e' 選項會立即使用戶的密碼過期,這將強制用戶在下次登錄時更改密碼。
復制代碼代碼如下:
[root@linuxworld ~]# passwd -e linuxtechi
Expiring password for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 1970-01-01 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@linuxworld ~]#
現在嘗試用 linuxtechi 用戶 SSH 連接到主機。
例6:鎖定系統用戶的密碼
在 passwd 命令中使用 ‘-l‘ 選項能鎖定用戶的密碼,它會在密碼的起始位置加上“!”。當他/她的密碼被鎖定時,用戶將不能更改它的密碼。
復制代碼代碼如下:
[root@linuxworld ~]# passwd -l linuxtechi
Locking password for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi LK 2015-09-20 0 99999 7 -1 (Password locked.)
[root@linuxworld ~]#
例7:使用 -u 選項解鎖用戶密碼
復制代碼代碼如下:
[root@linuxworld ~]# passwd -u linuxtechi
Unlocking password for user linuxtechi.
passwd: Success
[root@linuxworld ~]#
例8:使用 -i 選項設置非活動時間
在 passwd 命令中使用 -i 選項用於設置系統用戶的非活動時間。當用戶(我使用的是linuxtechi用戶)密碼過期後,用戶再經過 ‘n‘ 天後(在我的情況下是10天)沒有更改其密碼,用戶將不能登錄。
復制代碼代碼如下:
[root@linuxworld ~]# passwd -i 10 linuxtechi
Adjusting aging data for user linuxtechi.
passwd: Success
[root@linuxworld ~]#
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 0 99999 7 10 (Password set, SHA512 crypt.)
[root@linuxworld ~]#
例9:使用 -n 選項設置密碼更改的最短時間
在下面的例子中,linuxtechi用戶必須在90天內更改密碼。0表示用戶可以在任何時候更改它的密碼。
復制代碼代碼如下:
[root@linuxworld ~]# passwd -n 90 linuxtechi
Adjusting aging data for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 90 99999 7 10 (Password set, SHA512 crypt.)
[root@linuxworld ~]#
例10:使用 -w 選項設置密碼過期前的警告期限
‘-w’ 選項在 passwd 命令中用於設置用戶的警告期限。這意味著,n天之後,他/她的密碼將過期。
復制代碼代碼如下:
[root@linuxworld ~]# passwd -w 12 linuxtechi
Adjusting aging data for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 90 99999 12 10 (Password set, SHA512 crypt.)
[root@linuxworld ~]#