Linux
更改 Linux 伺服器上所有使用者的密碼
通過一次性重置每個使用者的密碼,我需要鎖定 10 台 Linux 伺服器。這背後的故事很長,但總的想法是我需要它在特定時間很快發生。我將為所有使用者帳戶使用一個單一的、嚴格的密碼(只是最初),因此不需要從密碼文件或類似的東西中讀取。
所以我需要的是最好的編寫腳本的方法,這樣我就可以一次重置所有密碼。我可以使用該
cat /etc/passwd | cut -f1 -d:
命令提取使用者帳戶列表,但最終會包括所有帳戶,包括我認為不應該亂用的系統帳戶。那麼我在這裡最好的選擇是什麼?
**筆記!**重置密碼時,您還需要確保從
~/.ssh/authorized_keys
文件中擦除任何額外內容。直到後來才記得這一點——謝天謝地,我幾乎把伺服器鎖得很緊,除了伺服器到伺服器的東西之外,authorized_keys 中沒有任何東西。
您可以選擇 UID >= 500 以確保您只獲得真實使用者而不是系統帳戶,然後使用選項 –stdin 的 passwd 更改密碼。
像這樣的東西應該工作:
while IFS=: read u x nn rest; do if [ $nn -ge 500 ]; then echo "YOURSTRONGPASSWORD" |passwd --stdin $u; fi done < /etc/passwd
您可以使用類似“newusers”的命令在批處理模式下更新使用者密碼。創建一個包含 user:password 組合的文件並通過 newusers 載入它… 輸入的密碼未加密,但在此過程中將被加密。
newusers userpass.txt
userpass.txt 看起來像 /etc/passwd 文件。相同的格式。
我會將 /etc/passwd 複製到一個新文件,刪除系統帳戶行並將第二個欄位“x”替換為您希望使用的通用密碼,然後使用 newusers 命令重新導入。