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脚本批量处理交换机配置变更

Linux/CentOS Shell脚本中非交互式修改密码

Linux系统下shell脚本实战之mariadb创建数据库和表

Linux之shell脚本实战批量上传docker镜像到华为云容器镜像仓库

linux '--stdin'错误 -批量修改密码

linux通过expect批量修改密码