我正在使用 pkexec 以 root 身份执行 python 脚本,并使用它working_dir = os.getenv('HOME')
获取用户名,但它总是返回root
当前test1
用户。我怎样才能获取运行 pkexec 的用户?
我已经尝试过了,print os.environ["SUDO_USER"]
但失败了,因为它不是直接用 sudo 执行的。我现在使用的是 trusty,但在 16.04 中表现相同。
答案1
我这样修复了它:
import pwd
import os
user = pwd.getpwuid(int(os.environ["PKEXEC_UID"])).pw_name
working_dir = '/home/{}'.format(user)