Home >Backend Development >PHP Tutorial >Modify user passwords in batches in Linux system
Purpose of the script: Modify Linux system user passwords in batches
Conditions: The modified user must be root, because only root has the permission to use the passwd command
Instructions: First write the IP, user, password, and port information to the old_info file , the script reads the corresponding information from this file and uses expect to log in to the system without interaction. Change the randomly generated 8-digit password to the new password of the root user. Then save the new password to the net_info file.
# cat old_info
# ip ip user passwd port
#-------------------------------- ---------------
192.168.18.217 root n8wX3mU% 22
192.168.18.218 root c87;ZnnL 22
# cat change_pass.sh
#!/bin/ bash
OLD_INFO=~/old_info
NEW_INFO=~/new_info
for IP in `awk '/^[^#]/{print $1}' $OLD_INFO`; do
USER=`awk -v I=$IP'{if(I==$1)print $2}' $OLD_INFO`
PASS=`awk -v I=$IP'{if(I==$1)print $3}' $OLD_INFO`
PORT=`awk -v I=$IP'{if(I==$1)print $4}' $OLD_INFO`
NEW_PASS=`mkpasswd -l 8`
echo "$IP $USER $NEW_PASS $PORT"> ;> $NEW_INFO
expect -c "
spawn ssh -p$PORT $USER@$IP
set timeout 2
expect {
"(yes/no)"{send "yesr";exp_continue}
"password:"{send "$PASSr";exp_continue}
"$USER@*"{send "echo '$NEW_PASS' |passwd --stdin $USERrexitr";exp_continue}
"$USER@* " {send"df -hr exitr";exp_continue}
}"
done
# cat new_info
192.168.18.217 root n8wX3mU% 22
19 2.168.18.218 root c87;ZnnL 22
Receive Brothers for free IT Education original Linux operation and maintenance engineer video/detailed Linux tutorial, please contact the official website customer service for details: http://www.lampbrother.net/linux/
Learn PHP, Linux, HTML5, UI, Android and other video tutorials (courseware + notes + video)! Contact Q2430675018
|