Как я могу получить имя пользователя из скрипта 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)
Другие вопросы по тегам