Как я могу получить имя пользователя из скрипта Python, запускаемого с помощью pkexec?
Я выполняю скрипт Python от имени пользователя root с помощью pkexec, и я использую working_dir = os.getenv('HOME')
чтобы получить имя пользователя, но оно всегда возвращает root
вместо test1
который является текущим пользователем. Как я могу получить пользователя, который запустил pkexec?
Я уже пробовала print os.environ["SUDO_USER"]
но это не удается, поскольку он не выполняется напрямую с помощью sudo. Сейчас я на верном, но веду себя так же в 16.04.
1 ответ
Решение
Я исправил это так:
import pwd
import os
user = pwd.getpwuid(int(os.environ["PKEXEC_UID"])).pw_name
working_dir = '/home/{}'.format(user)