From d162a7b978a98b910e410dc10a40d5de12db0419 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 12 Jan 2022 23:19:11 +0100 Subject: sulogin: increase util-linux compatibility Change to root's HOME. Set some envvars. Steal ctty if necessary and possible. function old new delta sulogin_main 240 340 +100 setup_environment 225 233 +8 su_main 479 474 -5 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/1 up/down: 108/-5) Total: 103 bytes Signed-off-by: Denys Vlasenko --- libbb/setup_environment.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libbb') diff --git a/libbb/setup_environment.c b/libbb/setup_environment.c index f8de44967..df2983958 100644 --- a/libbb/setup_environment.c +++ b/libbb/setup_environment.c @@ -54,15 +54,15 @@ void FAST_FUNC setup_environment(const char *shell, int flags, const struct pass xsetenv("TERM", term); xsetenv("PATH", (pw->pw_uid ? bb_default_path : bb_default_root_path)); goto shortcut; - // No, gcc (4.2.1) is not clever enougn to do it itself. + // No, gcc (4.2.1) is not clever enough to do it itself. //xsetenv("USER", pw->pw_name); //xsetenv("LOGNAME", pw->pw_name); //xsetenv("HOME", pw->pw_dir); //xsetenv("SHELL", shell); } else if (flags & SETUP_ENV_CHANGEENV) { - /* Set HOME, SHELL, and if not becoming a super-user, - * USER and LOGNAME. */ - if (pw->pw_uid) { + /* Set HOME, SHELL, and if not becoming a super-user + * or if SETUP_ENV_CHANGEENV_LOGNAME, USER and LOGNAME. */ + if ((flags & SETUP_ENV_CHANGEENV_LOGNAME) || pw->pw_uid != 0) { shortcut: xsetenv("USER", pw->pw_name); xsetenv("LOGNAME", pw->pw_name); -- cgit v1.2.3-55-g6feb