#!/usr/bin/env python # CCS Computer Science # Password # # Douglas Thrift # # $Id$ import admin import common import ldap import MySQLdb import os if __name__ == '__main__': parser = admin.parser(description = 'Change CCS CS Lab user password') parser.add_option('-u', '--user', default = '', help = 'change password of USER (only works when run as root)') try: user = admin.user(parser.parse_args()[0]) old_password = os.environ.get('OLD_PASSWORD') if old_password: with open(old_password, 'rb') as password_file: if not old_password.startswith('/dev/fd/'): os.unlink(old_password) old_password = password_file.read() new_password = common.new_password() if admin.master(): admin.passwd(user, old_password, new_password) admin.run(common.change_all(user, old_password, new_password) if old_password else common.reset_all(user, new_password)) except (common.PasswordError, IOError, ldap.LDAPError, MySQLdb.MySQLError), error: admin.error(error) except (EOFError, KeyboardInterrupt): admin.eof() # vim: noexpandtab tabstop=4