pythonスクリプトをpkexecでルートとして実行しています。ユーザー名を取得するためにworking_dir = os.getenv('HOME')
を使用していますが、常にtest1
ではなくroot
を返します。代わりにpkexecを実行したユーザーを取得するにはどうすればよいですか?
すでにprint os.environ["Sudo_USER"]
を試しましたが、Sudoで直接実行されていないため失敗します。私は今信頼していますが、16.04でも同じように動作します。
このように修正しました:
import pwd
import os
user = pwd.getpwuid(int(os.environ["PKEXEC_UID"])).pw_name
working_dir = '/home/{}'.format(user)