os.getuid(), geteuid(), getgid(), getegid() și getlogin() în Python

Utilizatori și permisiuni (os) Python 3.0+ (Unix; getlogin și pe Windows)

Identitatea utilizatorului și a grupului sub care rulează procesul.

Sintaxă
os.getuid(), os.geteuid()
os.getgid(), os.getegid()
os.getlogin()

Ce face os.getuid(), geteuid(), getgid(), getegid() și getlogin()

getuid() și getgid() dau identificatorii reali ai utilizatorului și grupului care a pornit procesul. geteuid() și getegid() dau identificatorii efectivi, folosiți la verificarea permisiunilor (diferă, de exemplu, la programele setuid). UID 0 înseamnă administratorul (root).

getlogin() returnează numele utilizatorului conectat la terminal; în servicii fără terminal poate da eroare, deci pentru numele utilizatorului este mai sigur pwd.getpwuid(os.getuid()).pw_name sau getpass.getuser().

Ce returnează

Întregi; getlogin: text.

Exemple

Exemplul 1: Cine rulează programul

import os, pwd
print(os.getuid(), os.geteuid(), os.getgid(), os.getegid())
print(pwd.getpwuid(os.getuid()).pw_name, os.getlogin())
if os.geteuid() != 0:
    print("Rulează fără drepturi de administrator")

Rezultat posibil (diferă la fiecare rulare)

1000 1000 1000 1000
ana ana
Rulează fără drepturi de administrator

Greșeli frecvente

  • Verifici drepturile de administrator cu getuid() într-un program setuid: contează geteuid().

Comenzi înrudite