簡體   English   中英

如何從使用 pkexec 運行的腳本中獲取當前用戶名?

[英]How can I get the current username from a script run with pkexec?

我正在使用 pkexec 以 root 身份執行pkexec腳本,我正在使用working_dir = os.getenv('HOME')來獲取用戶名,但它總是返回 root 而不是當前用戶 test1。

我怎樣才能得到運行pkexec的用戶呢?

如果該信息有任何用處,腳本位於 /usr/bin 中。

sudo手冊頁描述了環境變量,這些環境變量保存了調用它的用戶的信息。

import os
print os.environ["SUDO_USER"]

最后,感謝另一個人,下面是我為獲取當前用戶所做的事情:

import os
import pwd

user = pwd.getpwuid(int(os.environ["PKEXEC_UID"])).pw_name
working_dir = '/home/' + user

對於那些尋找純 bash 解決方案的人,這會發現用戶使用 sudo 或 pkexec 運行:

if test -z "$SUDO_USER"
then
    USER=$(getent passwd $PKEXEC_UID | cut -d: -f1)
else
    USER=$SUDO_USER
fi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM