18f565e290
coreutils: - Don't remove variables such as $PATH and $SHELL from the calling environment (from upstream). - When su is invoked with command line arguments for the shell (e.g. "su - -c 'cmd'"), set argv[0] in the shell to "-su" or "-<basename>" (as determined by the SU_NAME option in /etc/login.defs). This is necessary to make Bash compiled with the NON_INTERACTIVE_LOGIN_SHELLS option to read startup files. - Don't set $PATH to /bin:/usr/bin but inherit the $PATH of the caller. svn path=/nixpkgs/trunk/; revision=22140
22 lines
734 B
Diff
22 lines
734 B
Diff
Don't reset $PATH to /bin:/usr/bin. This is consistent with `su' in
|
|
coreutils and important on NixOS.
|
|
|
|
diff -ru -x '*~' shadow-4.1.4.2-orig/src/su.c shadow-4.1.4.2/src/su.c
|
|
--- shadow-4.1.4.2-orig/src/su.c 2009-07-23 22:38:56.000000000 +0200
|
|
+++ shadow-4.1.4.2/src/su.c 2010-06-04 13:23:11.000000000 +0200
|
|
@@ -827,6 +827,7 @@
|
|
(void) signal (SIGINT, SIG_DFL);
|
|
(void) signal (SIGQUIT, SIG_DFL);
|
|
|
|
+#if 0
|
|
cp = getdef_str ((pwent.pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH");
|
|
if (NULL == cp) {
|
|
addenv ("PATH=/bin:/usr/bin", NULL);
|
|
@@ -835,6 +836,7 @@
|
|
} else {
|
|
addenv ("PATH", cp);
|
|
}
|
|
+#endif
|
|
|
|
if (getenv ("IFS") != NULL) { /* don't export user IFS ... */
|
|
addenv ("IFS= \t\n", NULL); /* ... instead, set a safe IFS */
|