Linux系统shell脚本之批量修改服务器密码
Posted 江湖有缘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统shell脚本之批量修改服务器密码相关的知识,希望对你有一定的参考价值。
Linux系统shell脚本之批量修改服务器密码
一、脚本要求
可以批量修改服务器的密码
二、脚本内容
#!/bin/bash
##########################################################
#File Name:pass_modify.sh
#Version:V1.0
#Aurhor:
#Emali:
#Created Time:2022-05-11
#Description:
##########################################################
OLD_PASS=old_pass.txt
NEW_PASS=new_pass.txt
for IP in $(awk '/^[^#]/print $1' $OLD_PASS); do
USER=$(awk -v I=$IP 'I==$1print $2' $OLD_PASS)
PASS=$(awk -v I=$IP 'I==$1print $3' $OLD_PASS)
PORT=$(awk -v I=$IP 'I==$1print $4' $OLD_PASS)
NUM_PASS=$(cat /dev/urandom |head -1 |md5sum |head -c 8 ) # 随机密码
echo "$IP $USER $NUM_PASS $PORT" >> $NEW_PASS
ping $IP -c 4 &> /dev/nulli
if [ $? = 0 ];then
echo "the $IP is connected!"
ssh $IP "id $USER &> /dev/null "
if [ $? = 0 ];then
echo "the $IP_$USER exsits"
ssh $IP "echo $NUM_PASS |passwd --stdin $USER"
else
echo "the $IP_$USER is null "
fi
else
echo "the $IP is fail!"
fi
done
三、编辑原始旧密码
[root@192 scripts]# cat old_pass.txt
192.168.3.211 admin 123456 22
192.168.18.218 admin 123456 22
四、执行脚本
[root@192 scripts]# ./pass_modify.sh
the 192.168.3.211 is connected!
the admin exsits
Changing password for user admin.
passwd: all authentication tokens updated successfully.
the 192.168.18.218 is fail!
五、验证密码更改
1.查看更改后的密码文件
[root@192 scripts]# cat new_pass.txt
192.168.3.211 admin 64694553 22
192.168.18.218 admin f19aab9b 22
2.在远端服务器验证密码
[root@node1 ~]# ifconfig ens161
ens161: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.211 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 fe80::7ec0:1f4e:fdb1:8244 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:4e:fd:d0 txqueuelen 1000 (Ethernet)
RX packets 33683 bytes 2608458 (2.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3770 bytes 340052 (332.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
以上是关于Linux系统shell脚本之批量修改服务器密码的主要内容,如果未能解决你的问题,请参考以下文章
Linux系统下shell脚本实战之mariadb创建数据库和表