一、passwd命令
passwd命令是Linux系統中最常用的修改密碼命令之一。它可以修改當前登錄用戶的密碼,也可以修改其他用戶的密碼。其基本語法如下:
passwd [選項] [用戶名]
選項:
-l
:鎖定賬戶,禁止用戶登錄-u
:解鎖賬戶,允許用戶登錄-d
:將密碼設置為空-S
:顯示密碼狀態信息-e
:強制用戶下次登錄修改密碼
示例:
# 修改當前用戶的密碼 $ passwd # 修改指定用戶的密碼(需要root權限) $ sudo passwd john # 鎖定用戶賬戶 $ sudo passwd -l john # 解鎖用戶賬戶 $ sudo passwd -u john # 設置用戶密碼為空 $ sudo passwd -d john # 查看用戶密碼狀態信息 $ sudo passwd -S john # 強制用戶下次登錄修改密碼 $ sudo passwd -e john
二、chpasswd命令
chpasswd命令是一種批量修改密碼的方式。它可以從文件或stdin中讀取用戶名和密碼的組合,並將其用於批量密碼更改。其語法如下:
echo "用戶名:密碼" | sudo chpasswd [選項] sudo chpasswd [選項] < 密碼文件
選項:
-c
:使用crypt()函數加密密碼-e
:將密碼設置為空
示例:
# 從文件中批量修改密碼 $ cat users.txt | sudo chpasswd # 從stdin中批量修改密碼 $ echo "john:pass123" | sudo chpasswd # 將密碼設置為空 $ echo "john:" | sudo chpasswd -e
三、usermod命令
usermod命令是一個非常常用的命令,它可以修改用戶的各種屬性,包括用戶名、uid、gid、shell、home目錄等。它也可以用於修改用戶的密碼。其基本語法如下:
sudo usermod -p PASSWORD_HASH USERNAME
示例:
# 修改用戶密碼 $ sudo usermod -p $(echo "newpass" | openssl passwd -1 -stdin) john
四、shadow文件
shadow文件記錄了系統中所有用戶的密碼哈希值。修改密碼時,首先需要找到對應用戶的哈希值,並用新的哈希值替換舊的哈希值。shadow文件通常存儲在/etc/shadow
文件中。
示例:
# 找到用戶john的哈希值 $ sudo grep john /etc/shadow # 將用戶john的舊哈希值替換為新哈希值 $ sudo sed -i 's/john:OLD_HASH_VALUE/john:NEW_HASH_VALUE/' /etc/shadow
五、注意事項
在Linux中,密碼通常是用哈希函數加密的,因此直接修改密碼文件是不可行的。必須使用passwd
、chpasswd
或usermod
等命令來修改密碼。另外,為了安全起見,建議使用強密碼,並定期更改密碼。
六、總結
本文介紹了Linux系統中幾種常用的密碼修改命令:passwd
、chpasswd
和usermod
。同時還介紹了如何從shadow文件中找到用戶的舊哈希值,並將其替換為新哈希值。為了保證系統的安全性,密碼設置需要注意一下事項。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/183988.html