gdm and user login files with non-bourne shells

Nataraj incoming-ubuntu at rjl.com
Mon Jun 21 01:16:04 UTC 2010


I am running Lucid 10.04 with all updates applied.  I see that GDM does 
not run a login shell (from /etc/gdm/Xsession), but instead, 
/etc/gdm/Xsession invokes the users .profile file itself.

A result of this, is that if a user has his login shell set to a 
non-bourne shell such as tcsh, and he has commands in ${HOME}/.login or 
other non-bourne shell init files they never get invoked.  This is 
somewhat documemented in the comments in /etc/gdm/Xsession.  Gnome in 
other linux distributions such as Fedora, invoke a login shell with 
something like exec -l ${SHELL} from /etc/gdm/Xsession, which guarantees 
that a user will get the expected behaviour based on their choice of 
login shell.  Of course the login shell must be run directly under gdm 
so that it can pass down any environment variables to child processes.

Is this just the documented behavior of Ubuntu or am I missing something 
here?  I managed to create a workaround, but it seems messy to have to 
do this.

Also I tried to create a .xsession file in ${HOME}/.xsession, but it did 
not get invoked. /etc/X11/Xsession.options, which is unmodified from the 
default, contains the line:

allow-user-xsession

Any ideas?

Thank You,
Nataraj





More information about the ubuntu-users mailing list