当前位置: 代码网 > 服务器>服务器>Linux > shell批量修改主机密码的实现示例

shell批量修改主机密码的实现示例

2024年05月18日 Linux 我要评论
1.编写执行脚本vim host-pass.sh#!/bin/bash #配置旧的密码文件cat >old_pass.txt <<eof10.36.192.182 root 123

1.编写执行脚本

vim host-pass.sh

#!/bin/bash
 
#配置旧的密码文件
cat >old_pass.txt <<eof
10.36.192.182 root 123 22
10.36.192.184 root 123 22
eof
 
 
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
old_info=old_pass.txt
new_info=new_pass.txt
# yum install -y sshpass
for ip in $(awk '/^[^#]/{print $1}' $old_info); do
    #user--> root
    user=$(awk -v i=$ip 'i==$1{print $2}' $old_info)
    #pass-->password
    pass=$(awk -v i=$ip 'i==$1{print $3}' $old_info)
    #port-->22
    port=$(awk -v i=$ip 'i==$1{print $4}' $old_info)
    #新密码-->8位随机数
    #new_pass=1
    new_pass=$(openssl rand -base64 8)
      
 # sshpass是一个工具,用于自动输入密码来建立ssh连接;stricthostkeychecking=no 选项告诉ssh客户端跳过主机密钥的检查,
    #下载sshpass
    yum -y install sshpass &>>/dev/null
   
    sshpass -p "$pass" ssh -p $port $user@$ip -o stricthostkeychecking=no "echo $new_pass |passwd --stdin $user" && \
    (
    echo "$ip $user $new_pass $port [`date '+%f %t'`]" >> $new_info && \
    action "配置成功 $user $ip $new_pass" /bin/true
    ) || \
    action "配置失败 $user $ip $pass" /bin/false
done

2.测试时设置密码为1

3.取随机密码测试 

new_pass=$(openssl rand -base64 8)

到此这篇关于shell批量修改主机密码的实现示例的文章就介绍到这了,更多相关shell批量修改主机密码内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com