使用chpasswd命令批量修改系统用户密码
chpasswd命令工作原理:
從系統的標準輸入讀入用戶的名稱和口令,并利用這些信息來更新系統上已存在的用戶的口令!
語法:
1:# echo 用戶名:密碼 | chpasswd
2:# chpasswd < doiido.txt
相關參數:
-e :如果使用了-e選項,口令將只能以加密的方式傳遞
-e, --encrypted ?supplied passwords are encrypted
如果未使用-e選項,口令將按明文的形式傳遞
注意事項
1:用戶名必須是系統上已存在的用戶
2:普通用戶沒有使用這個指令的權限
3:如果輸入文件是按非加密方式傳遞的話,請對該文件進行適當的加密。
4:指令文件不能有空行
實例
1、直接修改centos用戶的密碼為centos1
# echo centos:centos1 |chpasswd
2、使用password.txt里面的用戶名密碼批量修改相應用戶的密碼
2.1:首先建立指令文件password.txt(txt文件格式為[username:passwd])
# vi password.txt
test1:redhat123
test2:redhat123
2.2:將password.txt的內容傳輸到chpasswd指令來修改相應用戶的密碼
# chpasswd < password.txt
3、讓普通用戶使用chpasswd
默認普通用戶是沒有chpasswd的權限,但是可以通過修改命令文件權限來修改
# chmod 4755 /usr/sbin/chpasswd
這樣普通用戶就可以使用chpasswd來修改密碼
4、批量遠程修改服務器密碼
比如利用saltstack或者ansible批量修改受控端服務器密碼
首先要配置服務端與客戶端的ssh無密碼登錄認證,然后批量修改
一個簡單的shell腳本:
cat alter_pwd.sh
#!/bin/bash
ips=`cat server_name.cfg`
for ip in $ips
do
? ? ? ? ssh ?$ip ?"echo 'root:123456798' |chpasswd"
? ? ? ? if [ $? -eq 0 ]?
? ? ? ? then?
? ? ? ? ? ? ? ? ?echo -e "$ip's password updated \033[32m successful.\033[0m"
? ? ? ? else
? ? ? ? ? ? ? ? ?echo -e "$ip's password updated \033[31m failed!!!\033[0m"
? ? ? ? fi
done
注:server_name.cfg 文件中是受控段服務器IP地址(一行一個IP)
轉載于:https://blog.51cto.com/linuxg/1710004
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的使用chpasswd命令批量修改系统用户密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断三点是顺时针还是逆时针方向
- 下一篇: 图片的旋转