74 lines
1.6 KiB
Bash
Executable File
74 lines
1.6 KiB
Bash
Executable File
#! /sbin/sh
|
|
#
|
|
#
|
|
USER_NAME_FILE=/usr/CMW/CMWuser-name
|
|
USER_MAC_FILE=/usr/CMW/CMWuser-mac
|
|
USER_CAP_FILE=/usr/CMW/CMWuser-cap
|
|
USER_SITECHECK=/usr/CMW/CMWuser-sitecheck
|
|
USER_PASSWD=/usr/CMW/CMWuser-passwd
|
|
USER_FILES="$USER_NAME_FILE $USER_MAC_FILE $USER_CAP_FILE \
|
|
$USER_SITECHECK $USER_PASSWD"
|
|
|
|
CMWSESSION=/usr/bin/X11/CMWsession
|
|
CMWLOGIN=/usr/bin/X11/CMWlogin
|
|
XINIT=/usr/bin/X11/xinit
|
|
MACLBLDEVS=/usr/sbin/maclbldevs
|
|
CMWUID=cmwlogin
|
|
LOGINCAPS=CAP_XTCB,CAP_PRIV_PORT,CAP_AUDIT_WRITE+pi
|
|
XSHM=0x000009a4
|
|
|
|
SU=/sbin/su
|
|
SH=/sbin/sh
|
|
RM=/sbin/rm
|
|
CAT=/sbin/cat
|
|
ECHO=/sbin/echo
|
|
SAT_ECHO=/usr/bin/sat_echo
|
|
IPCRM=/usr/sbin/ipcrm
|
|
CONSOLE=/dev/null
|
|
|
|
# Don't start CMWlogin on systems without graphics
|
|
if /sbin/chkconfig windowsystem ; then
|
|
:
|
|
else
|
|
exit 0
|
|
fi
|
|
|
|
while true
|
|
do
|
|
#
|
|
# Be sure the CMW directory is clean.
|
|
# Set up device attributes.
|
|
#
|
|
$RM -f $USER_FILES > $CONSOLE 2>&1
|
|
$MACLBLDEVS $CMWUID dblow
|
|
$IPCRM -M $XSHM
|
|
#
|
|
# Figure out who to be....
|
|
#
|
|
$XINIT $SH -c "$SU - $CMWUID -C $LOGINCAPS -c $CMWLOGIN" > $CONSOLE 2>&1
|
|
|
|
if [ -f $USER_NAME_FILE -a -f $USER_MAC_FILE -a -f $USER_CAP_FILE ]
|
|
then
|
|
USER_NAME=`$CAT $USER_NAME_FILE`
|
|
USER_MAC=`$CAT $USER_MAC_FILE`
|
|
#
|
|
# Start user's session
|
|
#
|
|
$ECHO "Successful CMW Login" | \
|
|
$SAT_ECHO -S sat_ae_identity > $CONSOLE 2>&1
|
|
$MACLBLDEVS $USER_NAME $USER_MAC
|
|
$IPCRM -M $XSHM
|
|
$XINIT $SH -c \
|
|
"$SU - $USER_NAME -M $USER_MAC -S -c $CMWSESSION" > \
|
|
$CONSOLE 2>&1
|
|
$ECHO "Successful CMW Logout" | \
|
|
$SAT_ECHO -S sat_ae_identity > $CONSOLE 2>&1
|
|
else
|
|
#
|
|
# Looks like the login failed.
|
|
#
|
|
$ECHO "Failed CMW Login" | \
|
|
$SAT_ECHO -F sat_ae_identity > $CONSOLE 2>&1
|
|
fi
|
|
done
|