使用 passwd 命令在 Linux 中處理用戶密碼
相比于過去,現在的安全技術已經取得了長足的進步,但是,到目前為止,密碼仍然是用于保護數據安全最常用的工具之一。
passwd 命令可以讓我們在 Linux 中更改用戶密碼,但它不僅僅用于更改密碼,還可以鎖定(或者解鎖)用戶,也可以讓用戶在下次登錄時更改密碼。
通過 passwd 命令所作的修改,都會反映在文件 /etc/passwd 中。那么,Linux 中的密碼存儲在哪里呢?它是以加密形式存儲在 /etc/shadow 文件中的。
下面我們就介紹一些關于 passwd 命令的實際用法。
1,更改自己的密碼
要更改自己的賬戶密碼,即當前登錄用戶的密碼,只需要輸入 passwd 命令,不需要任何選項:
輸入 passwd 回車后,系統會要求你輸入當前密碼,然后再設置一個新的密碼,如下例子:?
如果你輸入當前密碼(即舊密碼)作為新密碼,系統將拋出一條錯誤消息,指出密碼未更改,并再次提示你輸入新密碼。
2,創建 root 密碼
許多 Linux 發行版默認情況下都沒有設置 root 密碼,訪問 root 用戶的唯一方法就是通過 sudo 或者 su 命令。之所以這樣做,是因為如果設置了比較簡單的 root 密碼(比如123456abc),系統會很容易受到攻擊。
你必須是 sudo 用戶才能創建 root 密碼:
輸出如下:?
正確合理的配置用戶權限很重要,因為我們肯定不希望所有用戶都能更改 root 密碼。
3,修改其他用戶的密碼
作為 root 用戶,或者有 sudo 權限的用戶,可以使用 passwd 命令更改其他用戶的密碼。
因為你是管理員,正在重置密碼,所以系統不會要求你輸入舊密碼:?
4,檢查密碼狀態
可以使用 -S 選項來檢查用戶密碼的狀態:
下面是輸出:?
我們把上述輸出整理到一個表格中,以便后面的分析:
用戶名 | 狀態 | 上次更改日期 | 最小期限 | 最大期限 | 警告期 | 非活動期 |
nobody | P | 07/26/2022 | 0 | 99999 | 7 | -1 |
首先看一下狀態(status),各選項說明如下:
- P:可用密碼(Usable passwod)
- NP:沒有密碼(No password)
- L:鎖定的密碼(Locked password)
然后,關于密碼的有效期限,使用了一些保留的特殊號碼,用于設置密碼規則的參數:
- 9999:永不過期
- 0:可以隨時修改
- -1:未激活
其他的信息項,我們可以看到警告期為 7 天。但是由于禁用了非活動期,且設置了永不過期,所以不會出現警告。
5,檢查所有用戶的密碼狀態
作為管理員用戶,可以檢查系統上所有賬戶的用戶狀態:
6,強制用戶在下次登錄時更改密碼
我們可以使用 -e 選項讓用戶密碼立刻過期,這樣就可以強制用戶在下次登錄的時候更改密碼:
強制密碼過期的情況如下:?
現在,我們再來檢查一下用戶密碼的狀態:?
我們可以看到,密碼的設置日期已更改為“1970年1月1日”,這個歷史日期與 Unix 系統相關,它是一個“紀元(epoch)”日期,這基本上意味著該日期是 Unix 系統出現的第 “0”天(按32位)。
這樣,就可以將用戶 nobody 的密碼強制過期,當該用戶下次登錄時,就會被系統要求修改一個新密碼。
7,鎖定或解鎖用戶賬戶
passwd 命令的 -l 選項可以讓我們在 Linux 系統中鎖定用戶賬戶:
一旦我們鎖定了用戶賬戶,那該用戶就不能再登錄了。?
我們再來檢查一下用戶的狀態,如下:?
可以看到,其狀態代碼為 L,表示已鎖定。
解鎖用戶也很容易,使用 -u 選項:?
再次查看用戶密碼狀態,可以發現其狀態被修改為了 P,即可用密碼狀態:?
8,刪除用戶密碼
可以使用 -d 選項來刪除某個賬戶的密碼,這樣,該賬戶就不需要密碼來訪問系統。不過這不安全,所以一般不會這樣做。
9,其他
我們可以使用 -n 選項來強制某個用戶在 n 天內修改密碼。不過這樣手動操作是比較麻煩的,而且還浪費時間,所以一般情況下我們都是配置系統的密碼策略,使其適用于所有的用戶賬戶。
關于 passwd 其他的使用方法,大家可以使用 -h 選項來獲取幫助信息。