#!/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)