【Shell】【Tool】批次更新密碼
如果有許多使用者需要批次重設密碼並強制其在下次登入時更新,可以使用一個簡單的 Shell 腳本來自動化這個過程。假設你有一個包含所有目標使用者名稱的文字檔,例如 users.txt
,可以按照以下步驟操作:
-
建立使用者清單:
在
users.txt
中列出所有需要重設密碼的使用者名稱,每行一個。例如:user1 user2 user3
-
編寫批次重設密碼的腳本:
建立一個 Shell 腳本,批次執行密碼重設並強制更新。例如,將以下內容儲存為
reset_password.sh
:#!/bin/bash # 檢查 users.txt 是否存在 if [[ ! -f users.txt ]]; then echo "Error: users.txt not found!" exit 1 fi # 循環讀取每一個使用者 while IFS= read -r username; do # 跳過空行 if [[ -z "$username" ]]; then continue fi # 設定預設密碼或隨機密碼 new_password="DefaultPassword123" # 或使用 `new_password=$(openssl rand -base64 12)` 生成隨機密碼 echo "重設 $username 的密碼為 $new_password" # 重設密碼 echo "$username:$new_password" | sudo chpasswd # 強制下次登入時更改密碼 sudo chage -d 0 "$username" echo "$username 的密碼已重設並強制更新" done < users.txt
-
執行腳本:
為腳本增加執行權限,然後執行:
chmod +x reset_password.sh sudo ./reset_password.sh
-
檢查結果:
執行完成後,你可以再次使用
chage -l username
指令逐一檢查使用者的密碼到期設定,確認是否成功。
這樣便可批次重設多位使用者的密碼,並強制其在下次登入時更新密碼。