【发布时间】:2021-05-19 08:09:14
【问题描述】:
我正在用 python 编写一个程序,它以 root 身份运行(使用 sudo),我试图获取运行它的会话的用户名。
我尝试将os.getuid() 与pwd 模块结合使用,但它返回root。
我想过获取祖父进程的uid(程序-> sudo-> 具有正确uid的程序),但是我认为这不是一个优雅的解决方案,并且并非在所有情况下都有效。
如何获取当前会话的用户名(或uid)?
PS:我不是英文,所以我的信息可能有一些错误
【问题讨论】:
-
取决于你如何获得 root。最好的机会可能是
SUDO_*环境变量。 -
尝试:'loginctl list-sessions'
-
ok
logname似乎是最好的解决方案,我会使用它
标签: python python-3.x linux