Modification de getlogin en pwd.getpwuid(os.getuid())[0]

darcs-hash:20040910132908-d1718-61b89fc455a3a225abac8562e81724538a3a57f2.gz
This commit is contained in:
bernat 2004-09-10 15:29:08 +02:00
parent d0c09e1953
commit a1b52e559d
4 changed files with 50 additions and 9 deletions

View file

@ -1,7 +1,7 @@
#! /usr/bin/env python
# -*- coding: iso-8859-15 -*-
import getpass, commands, os, sys
import getpass, commands, os, sys, pwd
from affich_tools import cprint
import ldap_secret
@ -87,7 +87,7 @@ if __name__ == '__main__' :
cprint('Login incorrect','rouge')
sys.exit(1)
if os.getlogin() == sys.argv[1] :
if pwd.getpwuid(os.getuid())[0] == sys.argv[1] :
cprint('Utiliser passwd pour changer son propre mot de passe','rouge')
sys.exit(2)
@ -119,7 +119,7 @@ To: %s
Subject: Tentative de changement de mot de passe !
Tentative de changement du mot de passe de %s par %s.
""" % ( From, To , sys.argv[1], os.getlogin() )
""" % ( From, To , sys.argv[1], pwd.getpwuid(os.getuid())[0] )
# Envoi mail
import smtplib

View file

@ -21,7 +21,7 @@ Retournent None si pas d'objet trouv
# Destinataires, si vide n'envoi rien
To = 'fred@crans.org'
import string, os, sys
import string, os, sys, pwd
from whos import aff
import time, signal, getopt
@ -639,7 +639,7 @@ def set_blackliste(clas) :
# Commentaire
c = r[2].strip()
login = os.getlogin()
login = pwd.getpwuid(os.getuid())[0]
if c.split(' :')[0] != login :
t[3] = login + ' : ' + c
@ -1560,7 +1560,7 @@ if __name__ == '__main__' :
try :
if To :
# Paramètres pour le mail
From = os.getlogin() + '@crans.org'
From = pwd.getpwuid(os.getuid())[0] + '@crans.org'
entete_mail = """From: Crans <%s>
To: %s

View file

@ -22,7 +22,7 @@ smtpserv = "localhost"
# TODO :
# Interdire la modif des comptes nounou
import smtplib, sre, os, random, string, time, sys
import smtplib, sre, os, random, string, time, sys, pwd
import ldap, ldap.modlist
import config, annuaires, iptools, chgpass, user_tests
@ -698,7 +698,7 @@ class base_classes_crans(crans_ldap) :
else :
modif=', '.join(self.modifs)
hist = "%s, %s" % ( time.strftime(date_format), os.getlogin() )
hist = "%s, %s" % ( time.strftime(date_format), pwd.getpwuid(os.getuid())[0] )
# Suffit-t-il d'ajouter un item au dernier élément de l'historique ?
try:
@ -786,7 +786,7 @@ class base_classes_crans(crans_ldap) :
""" Sauvegarde puis destruction du dn (et des sous-dn) fourni """
if not self.conn : self.connect()
data = self.conn.search_s(dn,2)
txt = "%s # Destruction le %s par %s" % (data, time.strftime(date_format), os.getlogin())
txt = "%s # Destruction le %s par %s" % (data, time.strftime(date_format), pwd.getpwuid(os.getuid())[0])
if comment :
txt += ' (%s)' % comment
txt += '\n'

41
gestion/user_tests.py Executable file
View file

@ -0,0 +1,41 @@
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
""" Fonctions de tests sur l'utilisateur
Copyright (C) Frédéric Pauget
Licence : GPLv2
"""
import os, commands, pwd
def isroot():
""" Retourne True si l'utilisateur lancant le script est root """
return os.getuid() == 0
def issys(login=''):
""" Retourne True si l'utilisateur est système (uid<500)
Si login='', prend l'utilisateur loggué """
if login == '' : login = pwd.getpwuid(os.getuid())[0]
return int(commands.getoutput("id -u %s" % login)) <500
def groups(login='') :
""" Retourne liste des groupes (gid) auquels appartient l'utilisateur
fourni, si aucun utilisateur est founit prend l'utilisateur loggué """
if login == '' : login = pwd.getpwuid(os.getuid())[0]
return commands.getoutput('id -G %s' % login).split()
def isadm(login='') :
""" Retourne True si l'utilisateur est dans le groupe 4 (adm)
Si login='', prend l'utilisateur loggué """
return '4' in groups(login)
def isdeconnecteur(login='') :
""" Retourne True si l'utilisateur est dans le groupe 110 (disconnect)
Si login='', prend l'utilisateur loggué """
return isadm(login) or '610' in groups(login)
def iscableur(login='') :
""" Retourne True si l'utilisateur est dans le groupe 104 (respbat)
Si login='', prend l'utilisateur loggué """
return isadm(login) or '604' in groups(login)