parent
a9a57a481c
commit
880b8b6578
@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
# write pid for init.d/xdm
|
||||
echo $BASHPID >/var/run/xinit.pid
|
||||
# first param - autologin user
|
||||
XUSER=$1
|
||||
# number of virtual console
|
||||
TTYNUM=$2
|
||||
|
||||
# rerun x session for XUSER
|
||||
while true
|
||||
do
|
||||
# perform user profile setting up
|
||||
env USER=$XUSER /bin/share/calculate/xdm/xdm --login || break
|
||||
# write pam enviroment for pam_ck_connector
|
||||
cat >/home/$XUSER/.pam_environment <<EOF
|
||||
CKCON_DISPLAY_DEVICE=
|
||||
CKCON_X11_DISPLAY_DEVICE=$TTYNUM
|
||||
CKCON_X11_DISPLAY=:0
|
||||
EOF
|
||||
# run x session for user XUSER in background
|
||||
su - $XUSER -c 'source /etc/profile
|
||||
# replace xinit for startx
|
||||
xinit()
|
||||
{
|
||||
# if file is script run it throught bash
|
||||
if file $1 | grep -1 "POSIX shell script"
|
||||
then
|
||||
/bin/bash $*
|
||||
else
|
||||
$*
|
||||
fi
|
||||
}
|
||||
# run script start xsession
|
||||
source /usr/bin/startx' &
|
||||
# store pid user session
|
||||
SESSIONPID=$!
|
||||
# registry user in utmp and wtmp
|
||||
sessreg -a -l :0 $XUSER
|
||||
# wait session logout
|
||||
wait $SESSIONPID
|
||||
# remove user from utmp and wtmp
|
||||
sessreg -d -l :0 $XUSER
|
||||
# perform logout scripts for user
|
||||
env USER=$XUSER /bin/share/calculate/xdm/xdm --logout
|
||||
done
|
||||
|
||||
exit 0
|
Loading…
Reference in new issue