whoami en python

¿Cuál es la mejor manera de descubrir al usuario con el que se está ejecutando un proceso de Python?

Yo podría hacer esto:

name = os.popen('whoami').read() 

Pero eso tiene que comenzar un proceso completamente nuevo.

 os.environ["USER"] 

A veces funciona, pero a veces esa variable de entorno no está configurada.

 import getpass print getpass.getuser() 

Consulte la documentación del módulo getpass .

getpass.getuser ()

Devuelve el “nombre de inicio de sesión” del usuario. Disponibilidad: Unix, Windows.

Esta función verifica las variables de entorno LOGNAME, USER, LNAME y USERNAME, en orden, y devuelve el valor de la primera que se establece en una cadena no vacía. Si no se establece ninguno, el nombre de inicio de sesión de la base de datos de contraseñas se devuelve en los sistemas que admiten el módulo pwd; de lo contrario, se genera una excepción.

Esto debería funcionar bajo Unix.

 import os print os.getuid() # numeric uid import pwd print pwd.getpwuid(os.getuid()) # full /etc/passwd info