No Description

importUsers.py 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import os
  2. import sys
  3. EXPIRE="2018/12/31" # YY/MM/DD
  4. if len(sys.argv) < 2:
  5. print "Usage: %s /path/to/moodle/user/file/ email_pass" % sys.argv[0]
  6. sys.exit(0)
  7. users = open(sys.argv[1]).readlines()
  8. def buildPassword():
  9. """Build a random password"""
  10. import string
  11. from random import choice
  12. characters = string.ascii_letters + string.digits
  13. password = "".join(choice(characters) for x in range(10))
  14. return password
  15. def sendEmail(user, email, passwd):
  16. import smtplib
  17. gmail_user = 'jose.reyes46@upr.edu'
  18. gmail_password = sys.argv[2]
  19. sent_from = gmail_user
  20. to = email
  21. subject = 'Usuario y password para ADA'
  22. body = """Le he creado una cuenta en ada.uprrp.edu para su clase de CCOM3030.
  23. El username es %s y su password es %s.\n
  24. Si ya tenia una cuenta, esta ha sido reactivada. Ignoren el password aqui mencionado, deben dar login con el que usaban. Si lo han olvidado me escriben para cambiarlo.\n
  25. Para dar login al servidor, deberan usar el comando ssh en su terminal:
  26. ssh %s@ada.uprrp.edu
  27. Deberan escribir yes cuando les pida confiar en el servidor, y luego entrar su password. Inmediatamente despues de acceder les debe pedir que cambien el password.\n
  28. Cualquier duda que tengan me esciben.\n
  29. Jose Reyes""" % (user, passwd, user)
  30. email_text = """From: %s\nTo: %s\nSubject: %s\n\n%s
  31. """ % (sent_from, to, subject, body)
  32. try:
  33. server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
  34. server.ehlo()
  35. server.login(gmail_user, gmail_password)
  36. server.sendmail(sent_from, to, email_text)
  37. server.close()
  38. print 'Email sent!'
  39. except:
  40. print 'Something went wrong...'
  41. for user in users:
  42. fields = user.split(",")
  43. email = fields[2].split("\n")[0]
  44. user = email.split("@")[0]
  45. passwd = buildPassword()
  46. if os.path.exists("/home/estudiantes/%s" % user):
  47. os.system("chage -E %s %s" % (EXPIRE, user))
  48. print "%s expiration day changed" % user
  49. else:
  50. os.system("useradd -d /home/estudiantes/%s -m %s -e %s -s /bin/bash" % (user, user, EXPIRE))
  51. os.system("echo %s:%s | chpasswd" % (user, passwd))
  52. os.system("chage -d 0 %s" % user)
  53. print "%s user created" % user
  54. sendEmail(user,email,passwd)