diff --git a/simple_backup/simple_backup.py b/simple_backup/simple_backup.py index 3d9420e..4f4c199 100755 --- a/simple_backup/simple_backup.py +++ b/simple_backup/simple_backup.py @@ -644,14 +644,15 @@ class Backup: 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: - euid = os.geteuid() - - if euid == 0: - user = os.getenv('SUDO_USER') - else: - user = os.getenv('USER') - + user = _detect_user() homedir = os.path.expanduser(f'~{user}') parser = argparse.ArgumentParser(prog='simple_backup', @@ -874,7 +875,7 @@ def simple_backup() -> int: euid = os.geteuid() if euid == 0: - user = os.getenv('SUDO_USER') + user = _detect_user() if user is not None: homedir = os.path.expanduser(f'~{user}')