URI: 
       su: don't set $PATH - ubase - suckless linux base utils
  HTML git clone git://git.suckless.org/ubase
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 4cd0b143801b1135abd2b7012cfed020710a4e68
   DIR parent e9bcdcc341d74f0abaa171703ac031b55e9020c0
  HTML Author: neeshy <neeshy@tfwno.gf>
       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(-)
       ---
   DIR 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
   DIR 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;