su: don't set $PATH - ubase - suckless linux base utils | |
git clone git://git.suckless.org/ubase | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 4cd0b143801b1135abd2b7012cfed020710a4e68 | |
parent e9bcdcc341d74f0abaa171703ac031b55e9020c0 | |
Author: neeshy <[email protected]> | |
Date: Mon, 12 Feb 2024 21:03:12 -0500 | |
su: don't set $PATH | |
Just /bin is too restrictive, and login shells set the path anyway via | |
the default profile. Also, carrying the path over for non-login shells | |
conforms to the behavior of util-linux's su. | |
Diffstat: | |
M config.def.h | 1 - | |
M su.c | 5 ----- | |
2 files changed, 0 insertions(+), 6 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
@@ -1,6 +1,5 @@ | |
/* See LICENSE file for copyright and license details. */ | |
-#define ENV_SUPATH "/bin" | |
#define ENV_PATH "/bin" | |
#define PW_CIPHER "$6$" /* SHA-512 */ | |
#undef UTMP_PATH | |
diff --git a/su.c b/su.c | |
@@ -9,7 +9,6 @@ | |
#include <string.h> | |
#include <unistd.h> | |
-#include "config.h" | |
#include "passwd.h" | |
#include "util.h" | |
@@ -103,10 +102,6 @@ main(int argc, char *argv[]) | |
newargv[0] = shell; | |
newargv[1] = NULL; | |
} | |
- if (strcmp(pw->pw_name, "root") == 0) | |
- setenv("PATH", ENV_SUPATH, 1); | |
- else | |
- setenv("PATH", ENV_PATH, 1); | |
execve(shell, newargv, environ); | |
weprintf("execve %s:", shell); | |
return (errno == ENOENT) ? 127 : 126; |