In order to make xdm work with /etc/nologin, there are two issues to fix:

First, by default, nologin is checked by PAM thanks to this line in 
/etc/pam.d/xdm:

auth            requisite       pam_nologin.so

Presumably xdm just gets a "no!" reply from PAM, with the result that the user sees an unfriendly "login incorrect" message. I suggest removing this from PAM so that xdm can handle it itself.

xdm's attempt to handle nologin is in the first few lines of 
/etc/X11/xdm/Xstartup:

if [ -e /etc/nologin ]; then
  # always display the nologin message, if possible
  if [ -s /etc/nologin ] && which xmessage > /dev/null 2>&1; then
    xmessage -file /etc/nologin -geometry 640x480
  fi
  if [ "$(id -u)" != "0" ] && \
     ! grep -qs '^ignore-nologin' /etc/X11/xdm/xdm.options; then
    exit 1
  fi
fi

This fails because this script is run as root (see the comment at the start), so $(id -u) will always return 0. The fix is instead to test the $USER variable, which xdm passes; see the "STARTUP PROGRAM" section of the xdm man page. Something like this:

  if [ "$(id -u $USER)" != "0" ] ...

This seems to work for me.

I'm using xdm 1:1.0.4-1.





--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to