如何从使用 pkexec 运行的 python 脚本中获取用户名?

如何从使用 pkexec 运行的 python 脚本中获取用户名?

我正在使用 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)

相关内容