From 59ebdb10661d2713b2f84a02ed931efb39accf39 Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Mon, 28 Dec 2020 00:25:32 +0100 Subject: [PATCH] fixing pkexec in some distros --- keymapper/paths.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/keymapper/paths.py b/keymapper/paths.py index c014c8fc..932e3f3b 100644 --- a/keymapper/paths.py +++ b/keymapper/paths.py @@ -25,6 +25,7 @@ import os import shutil import getpass +import pwd from keymapper.logger import logger @@ -39,14 +40,19 @@ def get_user(): user = os.environ['USER'] if user == 'root': try: - user = os.environ.get('SUDO_USER', user) + user = os.environ['SUDO_USER'] except KeyError: # no sudo was used pass + try: + pkexec_uid = os.environ['PKEXEC_UID'] + user = pwd.getpwuid(pkexec_uid).pw_name + except KeyError: + # no pkexec was used or the uid is unknown + pass except KeyError: # possibly the systemd service. no sudo was used user = getpass.getuser() - return user