[chgpass] pour pouvoir l'utiliser dans des scripts

darcs-hash:20090323151329-bd074-e03b8289cd81601eb257dd1c628cb9832fd70152.gz
This commit is contained in:
Antoine Durand-Gasselin 2009-03-23 16:13:29 +01:00
parent 707074f3bf
commit 562b2864e3

View file

@ -39,7 +39,19 @@ def decode64(chaine):
except: except:
return chaine.decode('utf8','ignore') return chaine.decode('utf8','ignore')
def chgpass(dn) : def chgpass(dn, mdp = None) :
if mdp == None:
mdp = promptpass(dn)
# Changement mdp
if os.system("/usr/bin/ldappasswd -H '%s' -x -D '%s' -w '%s' '%s' -s '%s' > /dev/null" % (uri, ldap_auth_dn, ldap_password, dn, mdp) ):
cprint(u'Erreur lors du changement de mot de passe', 'rouge')
syslog.syslog("LDAP password changed for dn=%s" % dn)
else :
cprint(u'Changement effectué avec succès', u'vert')
def promptpass(dn):
cprint(u"""Le nouveau mot de passe doit comporter au minimum 6 caractères. cprint(u"""Le nouveau mot de passe doit comporter au minimum 6 caractères.
Il ne doit pas être basé sur un mot du dictionnaire.""", 'jaune') Il ne doit pas être basé sur un mot du dictionnaire.""", 'jaune')
print "Il est conseillé d'utiliser une combinaison de minuscules, majuscules,\nde chiffres et d'au moins un caractère spécial." print "Il est conseillé d'utiliser une combinaison de minuscules, majuscules,\nde chiffres et d'au moins un caractère spécial."
@ -106,23 +118,17 @@ Il ne doit pas être basé sur un mot du dictionnaire.""", 'jaune')
if mdp != mdp1 : if mdp != mdp1 :
cprint(u'Les deux mots de passe entrés sont différents, réesayer', 'rouge') cprint(u'Les deux mots de passe entrés sont différents, réesayer', 'rouge')
continue continue
break break
# Changement mdp
if os.system("/usr/bin/ldappasswd -H '%s' -x -D '%s' -w '%s' '%s' -s '%s' > /dev/null" % (uri, ldap_auth_dn, ldap_password, dn, mdp) ):
cprint(u'Erreur lors du changement de mot de passe', 'rouge')
syslog.syslog("LDAP password changed for dn=%s" % dn)
else :
cprint(u'Changement effectué avec succès', u'vert')
except KeyboardInterrupt : except KeyboardInterrupt :
cprint(u'\nAbandon', 'rouge') cprint(u'\nAbandon', 'rouge')
pass sys.exit(1)
except EOFError : except EOFError :
# Un Ctrl-D # Un Ctrl-D
cprint(u'\nAbandon', 'rouge') cprint(u'\nAbandon', 'rouge')
pass sys.exit(1)
return mdp
if __name__ == '__main__' : if __name__ == '__main__' :
sys.stdout.write('\r \r') # Pour esthétique lors de l'utilisation par sudo sys.stdout.write('\r \r') # Pour esthétique lors de l'utilisation par sudo