Possibilit de changer le mdp d'un adhrent avec droits en tant root.

Petite doc.

darcs-hash:20041022122257-41617-7f657141e679d73e323a000ee779379bc31a73ff.gz
This commit is contained in:
pauget 2004-10-22 14:22:57 +02:00
parent b0e56235b1
commit a9e248434e

View file

@ -1,6 +1,23 @@
#! /usr/bin/env python #! /usr/bin/env python
# -*- coding: iso-8859-15 -*- # -*- coding: iso-8859-15 -*-
"""
Script de changement de mots de passe LDAP
Utilisation :
* cas 1 : sans arguements par un utlisateur lambda :
changement de son propre mdp
* cas 2 : avec argument par un utilisateur ayant accès
total à la base LDAP (respbats) mais PAS ROOT :
changement du mdp de l'adhérent fourni en argument,
impossibilité de modifier le mdp d'un compte privilégié
* cas 3 : lancé par root : possibilité de modifier
tous les mots de passe LDAP
Copyright (C) Frédéric Pauget
Licence : GPLv2
"""
import getpass, commands, os, sys import getpass, commands, os, sys
from user_tests import getuser from user_tests import getuser
@ -94,7 +111,7 @@ if __name__ == '__main__' :
print "Changement du mot de passe du compte choisi." print "Changement du mot de passe du compte choisi."
sys.exit(255) sys.exit(255)
else : else :
# Changement du mot de passe par un admin câbleur ou une nounou # Changement du mot de passe par un câbleur ou une nounou
login = sys.argv[1] login = sys.argv[1]
self_mode = False self_mode = False
for c in login[:] : for c in login[:] :
@ -127,7 +144,7 @@ if __name__ == '__main__' :
except : except :
cprint('Erreur lors de la recherche du login','rouge') cprint('Erreur lors de la recherche du login','rouge')
sys.exit(5) sys.exit(5)
if self_mode : if self_mode :
# Il faut vérifier l'ancien mot de passe # Il faut vérifier l'ancien mot de passe
ldap_auth_dn = dn ldap_auth_dn = dn
@ -139,12 +156,11 @@ if __name__ == '__main__' :
cprint("Erreur lors de l'authentification",'rouge') cprint("Erreur lors de l'authentification",'rouge')
sys.exit(7) sys.exit(7)
if resultat != dn : if resultat != dn :
print '|%s|' % resultat
cprint({ 'Invalid credentials (49)' : 'Mot de passe invalide' }.get(resultat,resultat),'rouge') cprint({ 'Invalid credentials (49)' : 'Mot de passe invalide' }.get(resultat,resultat),'rouge')
sys.exit(8) sys.exit(8)
elif len(s) > 3 : elif len(s) > 3 and os.getuid()!=0 :
# Adhérent avec droits # Adhérent avec droits et on est pas root
From = 'roots@crans.org' From = 'roots@crans.org'
To = 'roots@crans.org' To = 'roots@crans.org'
mail = """From: Root <%s> mail = """From: Root <%s>