all Python 3osfunction
os.getlogin
os — user/group IDs
Return the name of the user logged in on the controlling terminal.
Syntax
os.getlogin(...)
Without a controlling terminal — under cron, systemd, a container or CI — it raises OSError. The documentation explicitly recommends getpass.getuser or pwd.getpwuid(os.getuid()).pw_name: the former checks the LOGNAME and USER variables, the latter the real UID. On Windows it returns the logged-in user's name.
Examples
import os
print(os.getlogin()) # → ? имя пользователя управляющего терминала, например alex; без терминала — OSError
user = os.getlogin() # → ? без терминала (cron, CI) — OSError
print(os.path.join('/home', user)) # → путь к домашнему каталогу по имени входа, например /home/alex
print(os.environ.get('USER') or os.getlogin()) # → то же имя; в cron или в демоне без терминала os.getlogin() бросает OSError, поэтому сначала смотрят переменную окружения
print(os.getlogin() == os.environ.get('LOGNAME')) # → на Unix обычно True, но getlogin() читает владельца терминала, а LOGNAME — переменную окружения, которую можно подменить
See also
Common errors
Open in the full glossarydocs.python.orgReport an inaccuracy