logical path to current dir lost during login
Markus Friedl
markus.friedl at informatik.uni-erlangen.de
Wed Nov 15 11:08:49 EST 2000
IMHO, setting $PWD is the job of the shell.
there are even some shells that do not need $PWD nor
care about symlinks.
On Tue, Nov 14, 2000 at 08:32:13PM +0100, Andreas Amann wrote:
> Hello,
>
> I use openssh-2.3.0p1 under linux-2.2.16 with standard settings and
> experience the following annoying problem: After I login the current
> directory is not set to the $HOME directory as expected, but to the
> _resolved_ path-name of the $HOME directory, where links and
> automounter dirs are expanded. To be specific, my $HOME is
> "/home/amann" but since /home is a link to the automounter directory
> /net/hservnlds/home/, my current working directory after login is
> "/tmp_mnt/hservnlds/home/amann". The reason for this is that sshd does
> not set the $PWD variable correctly.
>
> In order to fix this bug, I propose the following patch:
>
> diff -u ../../sb/openssh-2.3.0p1/session.c ./session.c
> --- ../../sb/openssh-2.3.0p1/session.c Sat Oct 28 05:19:58 2000
> +++ ./session.c Tue Nov 14 16:07:54 2000
> @@ -1293,6 +1293,8 @@
> if (login_getcapbool(lc, "requirehome", 0))
> exit(1);
> #endif
> + } else {
> + child_set_env(&env, &envsize, "PWD", pw->pw_dir);
> }
>
> /*
>
>
>
> Disclaimer: This patch fixes the problem for me. Since I am not at all
> familiar with security-critical programming, please check twice
> before you apply this patch. It might also be considered to set $PWD
> already before $HOME/.ssh/environment is read.
> (BTW, why is there no global /etc/environment file, I really miss it).
>
>
>
> CU,
>
> Andreas
>
More information about the openssh-unix-dev
mailing list