This question already has answers here:
Closed 3 years ago.
What is the best way to find out the user that a python process is running under?
I could do this:
name = os.popen('whoami').read()
But that has to start a whole new process.
os.environ["USER"]
works sometimes, but sometimes that environment variable isn't set.
import getpass
print getpass.getuser()
See the documentation of the getpass module.
getpass.getuser()
Return the “login name” of the user. Availability: Unix, Windows.
This function checks the environment variables LOGNAME, USER,
LNAME and USERNAME, in order, and
returns the value of the first one
which is set to a non-empty string. If
none are set, the login name from the
password database is returned on
systems which support the pwd module,
otherwise, an exception is raised.
This should work under Unix.
import os
print os.getuid() # numeric uid
import pwd
print pwd.getpwuid(os.getuid()) # full /etc/passwd info