41 lines
1 KiB
Python
Executable file
41 lines
1 KiB
Python
Executable file
#! /usr/bin/env python
|
|
# -*- coding: iso-8859-15 -*-
|
|
|
|
import getpass, commands, os
|
|
|
|
import ldap_secret
|
|
|
|
def chgpass(dn) :
|
|
print "Le mot de passe tapé ne sera pas écris à l'écran."
|
|
print "Taper Ctrl-C pour abandonner"
|
|
|
|
try :
|
|
|
|
while 1 :
|
|
mdp = getpass.getpass('Nouveau mot de passe :')
|
|
mdp1 = getpass.getpass('Retaper mot de passe :')
|
|
|
|
if mdp != mdp1 :
|
|
print 'Les deux mots de passe entrés sont différents, réesayer'
|
|
continue
|
|
|
|
# Test du mdp
|
|
test = commands.getoutput('echo "%s" | /usr/sbin/crack_testlib' % mdp)
|
|
|
|
if test.split(':')[1] == ' ok' :
|
|
break
|
|
else :
|
|
print test.split(':')[1]
|
|
|
|
# Changement mdp
|
|
if os.system('/usr/bin/ldappasswd -x -D "%s" -w %s "%s" -s %s > /dev/null' % (ldap_secret.auth_dn, ldap_secret.password, dn, mdp) ):
|
|
print 'Erreur lors du changement de mot de passe'
|
|
else :
|
|
print 'Changement effectué avec succès'
|
|
|
|
except KeyboardInterrupt :
|
|
pass
|
|
|
|
if __name__ == '__main__' :
|
|
print 'TODO : interface de sélection'
|
|
chgpass('aid=10,dc=crans,dc=org')
|