Python Glossary Русский

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