Home  >  Article  >  Backend Development  >  Modify user passwords in batches in Linux system

Modify user passwords in batches in Linux system

WBOY
WBOYOriginal
2016-07-25 08:46:491460browse
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



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn