passwd

用於讓用戶可以更改自己的密碼

補充說明

passwd命令 用於設置用戶的認證信息,包括用戶密碼、密碼過期時間等。系統管理者則能用它管理系統用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。

語法

1passwd(選項)(參數)

選項

1-d:刪除密碼,僅有系統管理者才能使用;
2-f:強制執行;
3-k:設置只有在密碼過期失效後,方能更新;
4-l:鎖住密碼;
5-s:列出密碼的相關信息,僅有系統管理者才能使用;
6-u:解開已上鎖的帳號。

參數

用戶名:需要設置密碼的用戶名。

知識擴展

與用戶、組賬戶信息相關的文件

存放用戶信息:

1/etc/passwd
2/etc/shadow

存放組信息:

1/etc/group
2/etc/gshadow

用戶信息文件分析(每項用:隔開)

1例如:jack:X:503:504:::/home/jack/:/bin/bash
2jack  # 用戶名
3X  # 口令、密碼
4503  # 用戶id(0代表root、普通新建用戶從500開始)
5504  # 所在組
6:  # 描述
7/home/jack/  # 用戶主目錄
8/bin/bash  # 用戶缺省Shell

組信息文件分析

1例如:jack:$!$:???:13801:0:99999:7:*:*:
2jack  # 組名
3$!$  # 被加密的口令
413801  # 創建日期與今天相隔的天數
50  # 口令最短位數
699999  # 用戶口令
77  # 到7天時提醒
8*  # 禁用天數
9*  # 過期天數

實例

如果是普通用戶執行passwd只能修改自己的密碼。如果新建用戶後,要爲新用戶創建密碼,則用passwd用戶名,注意要以root用戶的權限來創建。

1[root@localhost ~]# passwd linuxde     # 更改或創建linuxde用戶的密碼;
2Changing password for user linuxde.
3New UNIX password:           # 請輸入新密碼;
4Retype new UNIX password:    # 再輸入一次;
5passwd: all authentication tokens updated successfully.  # 成功;

普通用戶如果想更改自己的密碼,直接運行passwd即可,比如當前操作的用戶是linuxde。

1[linuxde@localhost ~]$ passwd
2Changing password for user linuxde.  # 更改linuxde用戶的密碼;
3(current) UNIX password:    # 請輸入當前密碼;
4New UNIX password:          # 請輸入新密碼;
5Retype new UNIX password:   # 確認新密碼;
6passwd: all authentication tokens updated successfully.  # 更改成功;

比如我們讓某個用戶不能修改密碼,可以用-l選項來鎖定:

 1[root@localhost ~]# passwd -l linuxde     # 鎖定用戶linuxde不能更改密碼;
 2Locking password for user linuxde.
 3passwd: Success            # 鎖定成功;
 4
 5[linuxde@localhost ~]# su linuxde    # 通過su切換到linuxde用戶;
 6[linuxde@localhost ~]$ passwd       # linuxde來更改密碼;
 7Changing password for user linuxde.
 8Changing password for linuxde
 9(current) UNIX password:           # 輸入linuxde的當前密碼;
10passwd: Authentication token manipulation error      # 失敗,不能更改密碼;

再來一例:

1[root@localhost ~]# passwd -d linuxde   # 清除linuxde用戶密碼;
2Removing password for user linuxde.
3passwd: Success                          # 清除成功;
4
5[root@localhost ~]# passwd -S linuxde     # 查詢linuxde用戶密碼狀態;
6Empty password.                          # 空密碼,也就是沒有密碼;

注意:當我們清除一個用戶的密碼時,登錄時就無需密碼,這一點要加以注意。

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: