41 lines
1.4 KiB
Python
Executable file
41 lines
1.4 KiB
Python
Executable file
#!/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)
|