Modification de getlogin en pwd.getpwuid(os.getuid())[0]
darcs-hash:20040910132908-d1718-61b89fc455a3a225abac8562e81724538a3a57f2.gz
This commit is contained in:
parent
d0c09e1953
commit
a1b52e559d
4 changed files with 50 additions and 9 deletions
|
@ -1,7 +1,7 @@
|
||||||
#! /usr/bin/env python
|
#! /usr/bin/env python
|
||||||
# -*- coding: iso-8859-15 -*-
|
# -*- coding: iso-8859-15 -*-
|
||||||
|
|
||||||
import getpass, commands, os, sys
|
import getpass, commands, os, sys, pwd
|
||||||
|
|
||||||
from affich_tools import cprint
|
from affich_tools import cprint
|
||||||
import ldap_secret
|
import ldap_secret
|
||||||
|
@ -87,7 +87,7 @@ if __name__ == '__main__' :
|
||||||
cprint('Login incorrect','rouge')
|
cprint('Login incorrect','rouge')
|
||||||
sys.exit(1)
|
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')
|
cprint('Utiliser passwd pour changer son propre mot de passe','rouge')
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ To: %s
|
||||||
Subject: Tentative de changement de mot de passe !
|
Subject: Tentative de changement de mot de passe !
|
||||||
|
|
||||||
Tentative de changement du mot de passe de %s par %s.
|
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
|
# Envoi mail
|
||||||
import smtplib
|
import smtplib
|
||||||
|
|
|
@ -21,7 +21,7 @@ Retournent None si pas d'objet trouv
|
||||||
# Destinataires, si vide n'envoi rien
|
# Destinataires, si vide n'envoi rien
|
||||||
To = 'fred@crans.org'
|
To = 'fred@crans.org'
|
||||||
|
|
||||||
import string, os, sys
|
import string, os, sys, pwd
|
||||||
from whos import aff
|
from whos import aff
|
||||||
import time, signal, getopt
|
import time, signal, getopt
|
||||||
|
|
||||||
|
@ -639,7 +639,7 @@ def set_blackliste(clas) :
|
||||||
|
|
||||||
# Commentaire
|
# Commentaire
|
||||||
c = r[2].strip()
|
c = r[2].strip()
|
||||||
login = os.getlogin()
|
login = pwd.getpwuid(os.getuid())[0]
|
||||||
if c.split(' :')[0] != login :
|
if c.split(' :')[0] != login :
|
||||||
t[3] = login + ' : ' + c
|
t[3] = login + ' : ' + c
|
||||||
|
|
||||||
|
@ -1560,7 +1560,7 @@ if __name__ == '__main__' :
|
||||||
try :
|
try :
|
||||||
if To :
|
if To :
|
||||||
# Paramètres pour le mail
|
# Paramètres pour le mail
|
||||||
From = os.getlogin() + '@crans.org'
|
From = pwd.getpwuid(os.getuid())[0] + '@crans.org'
|
||||||
|
|
||||||
entete_mail = """From: Crans <%s>
|
entete_mail = """From: Crans <%s>
|
||||||
To: %s
|
To: %s
|
||||||
|
|
|
@ -22,7 +22,7 @@ smtpserv = "localhost"
|
||||||
# TODO :
|
# TODO :
|
||||||
# Interdire la modif des comptes nounou
|
# 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 ldap, ldap.modlist
|
||||||
|
|
||||||
import config, annuaires, iptools, chgpass, user_tests
|
import config, annuaires, iptools, chgpass, user_tests
|
||||||
|
@ -698,7 +698,7 @@ class base_classes_crans(crans_ldap) :
|
||||||
else :
|
else :
|
||||||
modif=', '.join(self.modifs)
|
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 ?
|
# Suffit-t-il d'ajouter un item au dernier élément de l'historique ?
|
||||||
try:
|
try:
|
||||||
|
@ -786,7 +786,7 @@ class base_classes_crans(crans_ldap) :
|
||||||
""" Sauvegarde puis destruction du dn (et des sous-dn) fourni """
|
""" Sauvegarde puis destruction du dn (et des sous-dn) fourni """
|
||||||
if not self.conn : self.connect()
|
if not self.conn : self.connect()
|
||||||
data = self.conn.search_s(dn,2)
|
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 :
|
if comment :
|
||||||
txt += ' (%s)' % comment
|
txt += ' (%s)' % comment
|
||||||
txt += '\n'
|
txt += '\n'
|
||||||
|
|
41
gestion/user_tests.py
Executable file
41
gestion/user_tests.py
Executable 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)
|
Loading…
Add table
Add a link
Reference in a new issue