[chgpass] pour pouvoir l'utiliser dans des scripts
darcs-hash:20090323151329-bd074-e03b8289cd81601eb257dd1c628cb9832fd70152.gz
This commit is contained in:
parent
707074f3bf
commit
562b2864e3
1 changed files with 17 additions and 11 deletions
|
@ -39,7 +39,19 @@ def decode64(chaine):
|
|||
except:
|
||||
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.
|
||||
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."
|
||||
|
@ -106,23 +118,17 @@ Il ne doit pas être basé sur un mot du dictionnaire.""", 'jaune')
|
|||
if mdp != mdp1 :
|
||||
cprint(u'Les deux mots de passe entrés sont différents, réesayer', 'rouge')
|
||||
continue
|
||||
|
||||
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 :
|
||||
cprint(u'\nAbandon', 'rouge')
|
||||
pass
|
||||
sys.exit(1)
|
||||
except EOFError :
|
||||
# Un Ctrl-D
|
||||
cprint(u'\nAbandon', 'rouge')
|
||||
pass
|
||||
sys.exit(1)
|
||||
|
||||
return mdp
|
||||
|
||||
if __name__ == '__main__' :
|
||||
sys.stdout.write('\r \r') # Pour esthétique lors de l'utilisation par sudo
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue