为了服务器的安全性,大家都定时修改密码来增强安全性,如果是几台机器手动改就行了,但是如果是几十台上百台机器,每周修改一次,而且要求数字大小写字母加各种特殊符号,这样的话手动修改会产生两个后果,①改完以后手就废掉了,②手抖密码输错了,再次登录发现不上去,这两点是个人深有体会……,然后个人写的一个小脚本就诞生了。

这次实验是在centos6.x的环境下测试的,首先安装一个发邮件的工具

yum -y install mail

然后将我们的脚本放在指定的路径

解释下脚本的内容

#!/bin/bash

ip=`ip add|grep -o -e 'inet [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'|grep -v "127.0.0"|awk '{print $2}'|head -1 ` #这一行是提取本机IP的,不需要改

tr -dc _A-Z-a-z#$%^*-0-9 </dev/urandom |head -c20 >/home/1.txt #这一行是生成随机密码的

cat /home/1.txt |passwd root --stdin#这一行是将生成的密码本机的密码

SendStatus=`mail -v -s "CDN node $ip Latest password" [email protected]< /home/1.txt | grep -c "Mail Delivery Status Report will be mailed to <root>"` #这一行是将密码发送到指定邮箱,这里你们设置自己的邮箱

if [ "$SendStatus" == "1" ] ; then

echo "Sender mail ok"

rm -rf /home/1.txt

else

echo "Sender mail fail!"

sleep 50

sh /home/psd.sh #这一行要注意,你的脚本路径和脚本名字一定要和这里相同

fi #这个循环是将密码发送到指定邮箱,发送成功则删除生成的密码文件,发送失败则延迟50,在执行一次脚本
我把脚本放在了/home/psd.sh 
执行一下sh  psd.sh 

执行完毕后密码已经过来了 ,测试登录没有问题

然后设置计划任务(每天晚上一点执行一次) vi /etc/crontab

教程到此结束,自己折腾吧

说点什么
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...