Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15031
  • 博文数量: 4
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 12
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-30 15:49
文章分类
文章存档

2013年(4)

我的朋友

分类: LINUX

2013-06-06 10:14:00

博主堕落了很久了!前几天发现开发的同事在我们生产服务器上乱整,产生了很严重的后果,真的好严重真的好严重都发现二次了!这得把权限收回来,他娘的100来台服务器首先得把口令全改回来,前不久看了一下python,试一下弄一个批量修改口令的工具,反正这个风险又不大当测试一下哇。
环境:系统 centos 5.2 +python2.6 +paramiko模块 测试成功!

下载:要问我从那里下载的。我还真记不得了!如果需要那各位可以找谷哥和度娘,天涯只有问房事,这个是找不到的。嘿嘿,也可以发邮件给我!嘿嘿
安装:paramiko模块需要依赖 pycrypto
安装Python
tar -zxvf Python-2.6.tgz
cd  Python-2.6
./configure
make 
make install
cd ..
安装 pycrypto
tar -zxvf  pycrypto-2.6.tar.gz
cd pycrypto-2.6
python2.6 setup.py install
cd ..

安装 paramiko
tar -zxvf  paramiko-1.7.4.tar.gz
cd paramiko-1.7.4
python2.6 setup.py install
cd ..
修改默认python为2.6 当然你也可以不改哈。只是麻烦一点
mv /usr/local/bin/python /usr/local/bin/python2.4
mv /usr/local/bin/python2.6 /usr/local/bin/python


开始程序:嘿嘿
  1. #!/usr/local/bin/python


  2. import string
  3. import os
  4. import paramiko


  5. #设置需要修改的密码和用户名
  6. setpasswd="222222"
  7. setuser="root"
  8. #读配置文件(IP,端口,用户名,密码),以逗号分割的字符串,LINUX格式的回车
  9. #192.168.1.118,6868,root,111111
  10. filepwd="./user.txt"

  11. #读配置文件,返回IP,端口,用户名,密码
  12. def get_config_file(lines):
  13.     ip="192.168.1.100"
  14.     port=6000
  15.     user="root"
  16.     password="111111"
  17.     temp_str=string.split(lines,',') #逗号分割
  18.     ip=temp_str[0]
  19.     port=int(temp_str[1])
  20.     user=temp_str[2]
  21.     password=temp_str[3]
  22.     password=string.split(password,'\n')
  23.     password = password[0]
  24.     return(ip,port,user,password)


  25. #修改用户名和密码
  26. def connect_modify(ip_port_user_pwd):
  27.     client = paramiko.SSHClient()
  28.     client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  29.     try:
  30.         client.connect(ip_port_user_pwd[0],ip_port_user_pwd[1],ip_port_user_pwd[2],ip_port_user_pwd[3], timeout=5)
  31.     #    print ip_port_user_pwd[0],ip_port_user_pwd[1],ip_port_user_pwd[2],ip_port_user_pwd[3]
  32.     except:
  33.         print ip_port_user_pwd[0],"network not connect"
  34.         return 0
  35.     stdin, stdout, stderr = client.exec_command("/bin/echo %s|/usr/bin/passwd --stdin %s" %(setpasswd,setuser))
  36.     client.close()
  37.     return 1



  38. def main():
  39.     print "nn","setpassword",setpasswd
  40.     try:
  41.             f=open(filepwd,"r")
  42.     except:
  43.         print filepwd,"not open ip and passwd file"
  44.         return 0
  45.     for lines in f.readlines() :
  46.         #print lines
  47.             readline=string.split(lines,'\n')
  48.         if len(lines) >20:
  49.             ip_port_user_pwd = get_config_file(lines)
  50.             re=connect_modify(ip_port_user_pwd)
  51.             if re ==1 :
  52.                 print ip_port_user_pwd[0],"OK"
  53.         #else
  54.     f.close()

  55. main()
./user.txt文件的生成按自己要求写!(如下,如果windows下写的复制到程序的目录中,dos2unix命令改一下回事符哟)

192.168.1.110,16000,root,111111
192.168.1.111,16000,root,111111

./xxxxxxxxxxx.py
然后楼主去泡了一杯茶!

这个工具是楼主第一次弄出来有一点功能的东西,变量定义得相当的乱,结构也差得不得了,如果有啥子问题随时交流哈!
当然你有更好的。嘿嘿指点一下你也算集德了,你觉得呢!








阅读(1223) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~