Centralisation du remplacement de os.getlogin

On utilise la variable SUDO_USER et sinon on se rabat sur un getuid

darcs-hash:20040910192447-41617-51511e6987093eae4473592bde71fa0bd73f0151.gz
This commit is contained in:
pauget 2004-09-10 21:24:47 +02:00
parent 3d34d11860
commit e0da11ea79
4 changed files with 19 additions and 21 deletions

View file

@ -9,20 +9,17 @@ 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 getuser() :
""" Retourne l'utilisateur lancant les scripts """
user = os.getenv('SUDO_USER')
if not user :
user = pwd.getpwuid(os.getuid())[0]
return user
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]
if login == '' : login = getuser()
return commands.getoutput('id -G %s' % login).split()
def isadm(login='') :
@ -31,11 +28,11 @@ def isadm(login='') :
return '4' in groups(login)
def isdeconnecteur(login='') :
""" Retourne True si l'utilisateur est dans le groupe 110 (disconnect)
""" Retourne True si l'utilisateur est dans le groupe 610 (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)
""" Retourne True si l'utilisateur est dans le groupe 604 (respbat)
Si login='', prend l'utilisateur loggué """
return isadm(login) or '604' in groups(login)