Introduction
Introduction Statistics Contact Development Disclaimer Help
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;
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.