From fccd58c5338ae44ad6730cd39ab1340778ce1ab3 Mon Sep 17 00:00:00 2001 From: InsanePrawn Date: Sat, 24 Sep 2022 05:22:50 +0200 Subject: [PATCH] wrapper_su_helper.py: inject constants.WRAPPER_ENV_VAR into user env --- wrapper_su_helper.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wrapper_su_helper.py b/wrapper_su_helper.py index b19eba0..bc1683f 100755 --- a/wrapper_su_helper.py +++ b/wrapper_su_helper.py @@ -2,9 +2,11 @@ import click import pwd +import os from logger import logging, setup_logging +from constants import WRAPPER_ENV_VAR from exec.cmd import run_cmd, flatten_shell_script from exec.file import chown @@ -22,7 +24,8 @@ def kupferbootstrap_su(cmd: list[str], uid: int = 1000, username: str = 'kupfer' run_cmd(['usermod', '-u', str(uid), username]).check_returncode() # type: ignore[union-attr] chown(home, username, recursive=False) logging.debug(f'wrapper_su_helper: running {cmd} as {repr(username)}') - su_cmd = ['sudo', 'su', '-P', username, '-c', flatten_shell_script(cmd, wrap_in_shell_quote=True, shell_quote_items=True)] + env_inject = ['env', f'{WRAPPER_ENV_VAR}={os.environ[WRAPPER_ENV_VAR]}'] if WRAPPER_ENV_VAR in os.environ else [] + su_cmd = ['sudo', *env_inject, 'su', '-P', username, '-c', flatten_shell_script(cmd, wrap_in_shell_quote=True, shell_quote_items=True)] result = run_cmd(su_cmd, attach_tty=True) assert isinstance(result, int) exit(result)