免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ipod2008
打印 上一主题 下一主题

一个定期修改系统帐户口令的脚本 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-12-10 11:40 |只看该作者
用户被删,帖子内容也被删了
原想收藏了慢慢看,现在没得看了

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
12 [报告]
发表于 2009-12-10 11:44 |只看该作者

那你赶快收藏吧,哈哈

一个定期修改系统帐户口令的脚本 目前公司的网站系统中,服务器保有量巨大,因安全需要系统工程部会定期更新一次系统用户密码。随着业务的扩展,机器的日益增加,定期修改帐户密码成为一项繁冗、重复的工作,为减轻系统管理人员的工作强度,开发了这套密码更新系统.

      此系统shell部分有两部分组成,为常见的C/S架构,目前是稳定后的发布版,我个人的负责的机器已经上线

A.   机选口令模块

#!/bin/bash

# Name   : DB_passwd.sh
# Deviser: Li Ming
# Date   : Mon Sep 22 2008
# Purpose: Automatic password revised on a regular basis
# Use    : Unifies the crontab automatic movement
# NOTE   :
# History:
# Mon sep 22 2008  First   release   by Li Ming
# Wen Sep 10 2008  Second  release   by Li Ming
# Thu Dec 11 2008  Third   release   by Li Ming
# Wen Mar 04 2009  Fourth  release   by Li Ming

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin
export PATH

[[ $# != 1  ]]&&{ echo "  ERROR:Usage  /XX/XX/DB_passwd.sh  username ";exit 1; }

LOCKfile=/tmp/alter-passwd.lock
Username=$1
DB_ac=michael
DB_ip=xxx.xxx.xxx.xxx
DB_pw=257ea6949c88@
DB_db=password
DB_Key=michael
DB_table=michael
DB_iplist=/tmp/iplist
Results=/tmp/results.txt
DATE=`date +%F`
DATE2=`date +%Y_%m_%d`
IP=$(ifconfig | grep `route | grep default | awk  '{print $2}'| cut -d"." -f1,2`|awk -F: '{print $2}' |awk '{print $1}')
Addressee="42239674@qq.com"
Message=/root/shell/message
Mysql=`which mysql`

if [ -f "$LOCKfile" ]
   then
       echo "LOCK file is exist" && exit
   else
       touch $LOCKfile
fi

touch $DB_iplist
touch $Results
#touch $Message

check1=`mysqladmin -h $DB_ip -u $DB_ac -p$DB_pw ping 2> /dev/null |wc -l`
test $check1 -ne 1  && rm -rf $LOCKfile && exit

passwd=`echo $RANDOM | md5sum | awk '{print $1}'|cut -c-12`@

$Mysql -u $DB_ac -h $DB_ip -p$DB_pw -D $DB_db -e "select server,account from $DATE2;"|grep -v server |sed -e 's#\t##g'>$DB_iplist

if [ -z "`grep -x "$IP$Username" $DB_iplist`" ]
   then
      insertSQL="insert into $DATE2 values('','$IP','$Username',AES_ENCRYPT('$passwd','$DB_Key'),'$DATE');"
        $Mysql -u $DB_ac -h $DB_ip -p$DB_pw -D $DB_db -e "$insertSQL"
   else
       updateSQL="update $DATE2 set password=AES_ENCRYPT('$passwd','$DB_Key'),revision_time='$DATE' where server='$IP' and account='$Username';"
      $Mysql -u $DB_ac -h $DB_ip -p$DB_pw -D $DB_db -e "$updateSQL"
fi

selectSQL="select revision_time from $DATE2 where server='$IP' and account='$Username';"
check2=`$Mysql -u $DB_ac -h $DB_ip -p$DB_pw -D $DB_db -e "$selectSQL"| grep -v revision_time`
echo $check2
if [ "$check2" != "$DATE" ]
   then
        deleteSQL="delete from  $DATE2 where server='$IP' and account='$Username';"        
           $Mysql -u $DB_ac -h $DB_ip -p$DB_pw -D $DB_db -e "$deleteSQL"
        rm -rf $LOCKfile
        exit
fi


echo $passwd | passwd $Username --stdin
echo ServerIP AccountUsername Passwdpasswd >>$Results
cat $Message | mutt -s "$DATE-$IP-$1" -a $Results "$Addressee"

rm -rf $LOCKfile
rm -rf $DB_iplist
rm -rf $Results

B.  调用模块

#/bin/bash

Dir=/root/shell
$Dir/dbpasswd.sh  ceshi
$Dir/dbpasswd.sh  michael
#$Dir/dbpasswd.sh  root
#$Dir/dbpasswd.sh  maintain
#$Dir/dbpasswd.sh  weihu
#$Dir/dbpasswd.sh  menhu
#$Dir/dbpasswd.sh  javadev

使用时 将B 脚本 植入crontab  定期任务,密码修改后,从mysql 数据库表中解密导出明文密码表,  多项目分组的情况下,SA朋友们可以结合控制机(无密码链接)使用脚本激发手动临时批量修改!

目前使用下来,效果还可以,有兴趣的网友可以试试,欢迎回馈顶贴!!


小生在深入的学习数据库的过程中,发现次系统还有很多不完善的地方,架构上也不太理想,从数据库的角度开发的话,可以修改为W/S 架构,DB server端维护一张用户列表,结合存贮函数,可以轻松实现用户的管理,比现在的架构方便了许多,DBA 朋友请不吝赐教啊!


ps:  日志记录功能还未加入,crontab系统使用了自更新,定期从指定的web服务器取最新的密码脚本 ,各检测点可增加的mail 信件通知功能,各位仁者见仁、智者见智吧

论坛徽章:
0
13 [报告]
发表于 2009-12-10 11:51 |只看该作者

回复 #12 beginner-bj 的帖子

多谢,看来以后不能只点个收藏,得把内容拷贝下来

论坛徽章:
0
14 [报告]
发表于 2009-12-10 13:07 |只看该作者
HEHE  学习

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
15 [报告]
发表于 2009-12-10 14:24 |只看该作者

回复 #12 beginner-bj 的帖子

好银啊,赶紧copy了。

论坛徽章:
0
16 [报告]
发表于 2009-12-11 22:36 |只看该作者

没说明白环境如何,导致别人没法使用。

论坛徽章:
0
17 [报告]
发表于 2009-12-12 00:10 |只看该作者
怎么被删除了?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
18 [报告]
发表于 2009-12-12 01:18 |只看该作者

回复 #13 ywlscpl 的帖子

我之前没拷贝过原文的内容,哈哈

论坛徽章:
0
19 [报告]
发表于 2010-02-03 17:20 |只看该作者
hi!感谢朋友们的关注,本技术贴进行了更新,敬请关注
http://bbs.chinaunix.net/thread-1661442-1-1.html

论坛徽章:
0
20 [报告]
发表于 2010-02-03 17:37 |只看该作者
怎么删除了啊,还没看呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP