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
os.setuid(), seteuid(), setgid(), setegid(), setreuid(), setregid(): Schimbă utilizatorul sub care rulează procesul, de obicei pentru a renunța la drepturile de administrator.os.getgroups(), setgroups(), getgrouplist() și initgroups(): Grupurile suplimentare din care face parte procesul sau un utilizator.os.chown(), fchown() și lchown(): Schimbă proprietarul și grupul unui fișier, folosind numere (UID, GID).