linux 公钥密码修改,linux批量更改root密码

需求:服务器安全策略要求定期更换服务器root密码。

思路:交互式的考虑,需了解公钥加密知识;然后通过执行ssh命令达到自动化更改root密码的目的。

操作:主要分三部分,先是自己的电脑与远程服务器实现公钥加密方式远程登录,然后是创建一个ip列表的文本文档,最后执行批量修改root密码的脚本。

具体:这里只介绍最后部分脚本的内容,其他不难理解。脚本如下

#!/bin/bash

#filename:piroot.sh

#Environment:Centos 5.2

#definition variable#############################################

ip_list=`cat /home/ip_list.txt`

#definition function PWD#########################################

function pwdgen {

strUp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"

strLow="abcdefghijklmnopqrstuvwxyz"

strNum="0123456789"

passLen="8"

while [ "${#pass} -le "passLen" ]

do

passUp="${strUp:$(($RANDOM%${#strUp})):1}"

passLow="${strLow:$(($RANDOM%${#strLow})):1}"

passNum="${strNum:$(($RANDOM%${#strNum})):1}"

pass="$pass$passUp$passLow$passNum"

done

echo ${pass:0:$passLen}

}

#change PWD way##################################################

read -p "密码随机生成输入a;密码手动生成输入b: " way

if [ $way = a ]; then

TMP_PWD=`pwdgen`

elif [ $way = b ]; then

read -p "请输入要设置的密码:" TMP_PWD

else

echo " 输入错误! "

exit

fi

#密码修改执行####################################################

for IP in $ip_list; do

echo $TMP_PWD > TMP_PWD.txt

ssh $IP passwd root --stdin < TMP_PWD.txt

if [ $? = 0 ]; then

echo -e "$(date "+%Y-%m-%d %H:%M:%S")\t${IP}\t${TMP_PWD}\t" >> pwd_$(date +%Y-%m-%d).log

else

echo -e "$(date "+%Y-%m-%d %H:%M:%S")\t${IP} Password change fails\tplease check!\t" >> fails_$(date +%Y-%m-%d).log

fi

done

rm -fr TMP_PWD.txt

echo "所有主机的密码修改完成,请查看pwd_$(date +%Y-%m-%d).log文件!"

讲解:以上脚本内容难理解的就是标记红色的部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值