Centos下取随机密码修改并发送至邮箱
2019-11-15 11:20:29 Author: mp.weixin.qq.com(查看原文) 阅读量:79 收藏

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

这次实验是在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

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


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&amp;mid=2650458032&amp;idx=3&amp;sn=a9a8b7484d88826c083a4b5ae09c7def&amp;chksm=83bba254b4cc2b42602e050bcaa0dc3592b3047753c4201c6c8563e9a68d1ae529c1244f1fc3#rd
如有侵权请联系:admin#unsafe.sh