Hello, Leo Famulari <l...@famulari.name> 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’.