Hello,
Leo Famulari <[email protected]> skribis:
> In the man page of su(1), it says this:
>
> ------
> The current environment is passed to the new shell. The value of $PATH is
> reset to
> /bin:/usr/bin for normal users, or /sbin:/bin:/usr/sbin:/usr/bin for the
> superuser.
> This may be changed with the ENV_PATH and ENV_SUPATH definitions in
> /etc/login.defs.
> ------
>
> This means that `su leo` or `sudo su` give a broken environment on
> GuixSD. You have to use `su --login` instead.
>
> Should we use our own values for ENV_PATH and ENV_SUPATH so that this
> works out of the box?
Probably, yes. It would be good to check how this affects
mingetty/login, sshd, etc.
Note that libc also has its own default PATH value in <paths.h>:
/* Default search path. */
#define _PATH_DEFPATH "/usr/bin:/bin"
/* All standard utilities path. */
#define _PATH_STDPATH \
"/usr/bin:/bin:/usr/sbin:/sbin"
Does ‘su’ rely on this? In a future rebuild cycle we could change these
values, but /run/current-system/bin wouldn’t work on foreign distros, so
it’s not clear there’s much to gain.
Thanks,
Ludo’.