天天看点

python 批量修改linux用户的密码

安装: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

安装 paramiko

tar -zxvf  paramiko-1.7.4.tar.gz

cd paramiko-1.7.4

  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.            f=open(filepwd,"r")
  41. print filepwd,"not open ip and passwd file"
  42. for lines in f.readlines():
  43.        #print lines
  44.            readline=string.split(lines,'\n')
  45. if len(lines)>20:
  46.            ip_port_user_pwd = get_config_file(lines)
  47.            re=connect_modify(ip_port_user_pwd)
  48. if re ==1 :
  49. print ip_port_user_pwd[0],"OK"
  50.        #else
  51.    f.close()

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

192.168.1.110,16000,root,111111

192.168.1.111,16000,root,111111

./xxxxxxxxxxx.py