Detect the invoking user when running with doas

User detection only checked SUDO_USER, so with doas the user's
config file was not found unless -u was given. Fall back to
DOAS_USER, as already done for notifications.
This commit is contained in:
Fuxino
2026-10-08 17:43:28 +02:00
parent 22e0556b50
commit 7e7d11c520
+9 -8
View File
@@ -644,14 +644,15 @@ class Backup:
return 0 return 0
def _detect_user() -> Optional[str]:
if os.geteuid() == 0:
return os.getenv('SUDO_USER') or os.getenv('DOAS_USER')
return os.getenv('USER')
def _parse_arguments() -> argparse.Namespace: def _parse_arguments() -> argparse.Namespace:
euid = os.geteuid() user = _detect_user()
if euid == 0:
user = os.getenv('SUDO_USER')
else:
user = os.getenv('USER')
homedir = os.path.expanduser(f'~{user}') homedir = os.path.expanduser(f'~{user}')
parser = argparse.ArgumentParser(prog='simple_backup', parser = argparse.ArgumentParser(prog='simple_backup',
@@ -874,7 +875,7 @@ def simple_backup() -> int:
euid = os.geteuid() euid = os.geteuid()
if euid == 0: if euid == 0:
user = os.getenv('SUDO_USER') user = _detect_user()
if user is not None: if user is not None:
homedir = os.path.expanduser(f'~{user}') homedir = os.path.expanduser(f'~{user}')