Re: Login Shell/Profile: Stop the Madness
Michael B Allen wrote:
>
> ...
>
> Look, conceptually what needs to be done is simple. The purpose of the
> login option of a shell is to say "Hey, I'm logging in, initialize my
> environment." Subsequent shells do not use the login option which is
> to mean "Hey, I've already initialized my environment so don't bother
> to do it again. I just want another shell, inherit the environment from
> the parent."
>
> So all we have to do is detect when a user is logging in and exec their
> default shell with the login option. Debian does that when you ssh in
> or login on the console but not when you login with X.
>
> Where would we do that? Well let's review the process. Let's say your
> using gdm (but it's very similar for each login manager). Gdm calls
> scripts to be executed by root like /etc/X11/gdm/Init/Default for calling
> xmodmap, setting kbdrate, or /etc/X11/gdm/PostSession/Default mounting
> a home drive, etc. Then it switches to the user with setuid and calls
> scripts to be executed as the user to like /etc/X11/gdm/Xsession which
> calls /etc/X11/profile.d/ (or whatever it's called) which eventually
> exec's the session manager like say /usr/bin/wmaker possibly via
> ~/.xsession. Now if we exec the session manager at the very end we don't
> have a lot of choices. We have to launch our login shell there.
>
> Now I'm on a RH 7.3 system right now and I've never had this profile
> issue on RH systems so if I look at their scripts I see:
>
> #!/bin/bash
>
> ... lots of stuff ...
>
> # otherwise, take default action
> if [ -x "$HOME/.xsession" ]; then
> exec -l $SHELL -c "$HOME/.xsession"
>
> There are a lot of other lines that look like this but this one
> illustrates quite clearly how RH handles this. I'm not terribly familiar
> with exec options of bash but I'm willing to bet it has something to do
> with the login option or has the equivalent effect.
>
> You guys really should fix this problem. It's quite a wart.
>
> Mike
>
> --
> Greedo shoots first? Not in my Star Wars.
>
> --
> To UNSUBSCRIBE, email to debian-user-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
--
Daniel Barclay
dsb@smart.net
Reply to: