home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1999 March B
/
SCO_CASTOR4RRT.iso
/
nwsclnt
/
install
/
postinstall
< prev
next >
Wrap
Text File
|
1998-08-19
|
9KB
|
297 lines
# @(#)postinstall 1.4
# client postinstall script
#
#
# write the path to the client images in the file /etc/netware/client.images
#
# Revision History:
#
# L000 20th Oct 1997 tonylo
# The script now invokes /usr/lib/scoadmin/account/make-owner to
# make current system owners have privileges to run NetWare server
# applications
#
#
#
[ -n "$DEBUG" ] && set -x
if [ "$RANDOM" = "$RANDOM" ]
then
exec /usr/bin/winxksh $0 $*
fi
trap "" 2
exec 2> /tmp/nwsclnt.post.err
ADMINUSER="/usr/bin/adminuser"
GREP="/usr/bin/grep"
. /var/sadm/pkg/nwsclnt/install/misc_func # dot in support functions
SetLocale
. ${LANGDEP_SCRIPTS}/set_strings # load strings
function TFMSetup
{
[ -n "$DEBUG" ] && set -x
#
# Give root user privileges to run all nws commands (GUI and non-GUI).
#
$ADMINUSER root | $GREP NWClientDisk > /dev/null 2>&1
if (( $? != 0 ))
then
# root does not have privs.
$ADMINUSER -a NWClientDisk:/usr/X/bin/NWClientDisk:allprivs root
fi
# L000 vvv
#
# If we're running from install on boot, no need to setup owner since
# the postreboot.sh will take care of it. if, however, this is an
# after-the-fact pkgadd, the owner has to be setup here.
#
[ -f /etc/inst/scripts/postreboot.sh ] || {
set `grep mail= /var/sadm/install/admin/* | cut -f2 -d=`
while [ $# -ne 0 ]
do
[ "$1" != "root" ] && /usr/lib/scoadmin/account/make-owner $1 2>/dev/null
shift
done
}
# L000 ^^^
return 0
}
function LinkXCmds
{
[ -n "$DEBUG" ] && set -x
DAYONEDIR=/usr/X/desktop/LoginMgr/DayOne
/usr/X/adm/upgrade/dtgetusers |while read line
do
USER=`echo $line | /usr/bin/cut -f1 -d:`
if [ ! -f $DAYONEDIR/$USER ]
then
continue
fi
HOMEDIR=`echo $line | /usr/bin/cut -f2 -d:`
LOCALE=`cat $DAYONEDIR/$USER`
ADMIN=`LC_ALL=$LOCALE /usr/bin/gettxt dayone:2 "Admin_Tools"`
NET=`LC_ALL=$LOCALE /usr/bin/gettxt dayone:32 "Networking"`
# Check to see if desktop environment has Admin_Tools/Networking
if [ -d $HOMEDIR/$ADMIN/$NET ]
then
NWCLDISK=`LC_ALL=$LOCALE /usr/bin/gettxt dayone:87 "NetWare_Client_Disks"`
[ ! -s $HOMEDIR/$ADMIN/$NET/$NWCLDISK ] && {
ln -s /usr/X/bin/NWClientDisk $HOMEDIR/$ADMIN/$NET/$NWCLDISK 2>/dev/null
}
fi
done
# Add commands (if not there) to the PrivTable, and give them their required privileges.
$GREP "NWS_Status" /usr/X/desktop/LoginMgr/PrivTable > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "nws:30:Administer NetWare Server NWS_Status:/usr/X/bin/NWS_Status:allprivs,NWVolume_Setup:/usr/X/bin/NWVolume_Setup:allprivs,NWClientDisk:/usr/X/bin/NWClientDisk:allprivs,NWS_Licensing:/usr/X/bin/NWS_Licensing:allprivs,dsinstall:/usr/sbin/dsinstall:allprivs,dsrepair:/usr/sbin/dsrepair:allprivs,dsadmin:/usr/sbin/dsadmin:allprivs,nwserver:/usr/sbin/nwserver:allprivs,ndsbackup:/usr/sbin/ndsbackup:allprivs,ndsrestore:/usr/sbin/ndsrestore:allprivs,tsadmin:/usr/sbin/tsadmin:allprivs,nwshut:/usr/sbin/nwshut:allprivs,nwcm:/usr/sbin/nwcm:allprivs,pserver:/usr/sbin/pserver:allprivs,stopprint:/usr/sbin/stopprint:allprivs" >> /usr/X/desktop/LoginMgr/PrivTable
fi
# Add NWClientDisk (if not there) to the Help_Desk.
$GREP "NWClientDisk" /usr/X/desktop/Help_Desk>/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "NWClientDisk194,201{_HELPFILE=\"NWClientDisk/NWClientDisk.hlp\";_ICONLABEL=\"NWClientDisk\";_DESCRP=\"Creating NetWare Client Diskettes.\";_ICONFILE=\"nwcdisk32.icon\"}">>/usr/X/desktop/Help_Desk
fi
# Add entries for classdb files
if [ -d /usr/X/lib/classdb ]
then
$GREP "INCLUDE nwsclnt\.cdb;" /usr/X/lib/classdb/dtadmin >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "INCLUDE nwsclnt.cdb;" >> /usr/X/lib/classdb/dtadmin
fi
fi
#
# Give all existing system owners access to all NWS commands (GUI and command line)
# (do in subshell)
#
(
cd /usr/X/desktop/LoginMgr/Users
for USER in *
do
$GREP owner $USER > /dev/null 2>&1
if (( $? == 0 ))
then
# found owner
$ADMINUSER $USER | $GREP NWClientDisk > /dev/null 2>&1
if (( $? != 0 ))
then
# Owner does not have privs.
$ADMINUSER -a NWClientDisk:/usr/X/bin/NWClientDisk:allprivs $USER
fi
# Add entry to permissions file
$GREP "Administer NetWare Server" $USER > /dev/null 2>&1
if (( $? != 0 ))
then
echo "nws:30:Administer NetWare Server" >> $USER
fi
fi
done
)
return 0
}
TFMSetup
#LinkXCmds
# create tmp file with IMAGES_PATH variable
echo "$IMAGES_PATH" > /etc/netware/client.images
#
# write version and number number of diskettes to revision
#
DOSWINVER="1.2"
DOSWINNUM="5"
OS2VER="1.0"
OS2NUM="6"
# create rev files for client images directories
echo $CLASSES
case "$CLASSES" in
"none doswin")
echo "$DOSWINVER" > $IMAGES_PATH/doswin/revision
echo "$DOSWINNUM" >> $IMAGES_PATH/doswin/revision
echo "DOS and Windows 3.x" >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_1 >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_2 >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_3 >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_4 >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_5 >> $IMAGES_PATH/doswin/revision
# installf directory for images
installf $PKGINST $IMAGES_PATH/doswin d 0775 nwroot nwgroup
chmod 644 $IMAGES_PATH/doswin/revision
chown nwroot $IMAGES_PATH/doswin/revision
chgrp nwgroup $IMAGES_PATH/doswin/revision
installf $PKGINST $IMAGES_PATH/doswin/revision v 0644 nwroot nwgroup
;;
"none os2")
echo "$OS2VER" > $IMAGES_PATH/os2/revision
echo "$OS2NUM" >> $IMAGES_PATH/os2/revision
echo "OS/2" >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_1 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_2 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_3 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_4 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_5 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_6 >> $IMAGES_PATH/os2/revision
# installf directory for images
installf $PKGINST $IMAGES_PATH/os2 d 0775 nwroot nwgroup
chmod 644 $IMAGES_PATH/os2/revision
chown nwroot $IMAGES_PATH/os2/revision
chgrp nwgroup $IMAGES_PATH/os2/revision
installf $PKGINST $IMAGES_PATH/os2/revision v 0644 nwroot nwgroup
;;
"none doswin os2")
# set up doswin
echo "$DOSWINVER" > $IMAGES_PATH/doswin/revision
echo "$DOSWINNUM" >> $IMAGES_PATH/doswin/revision
echo "DOS and Windows 3.x" >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_1 >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_2 >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_3 >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_4 >> $IMAGES_PATH/doswin/revision
echo $DOSWIN_DISK_LABEL_5 >> $IMAGES_PATH/doswin/revision
# installf directory for images
installf $PKGINST $IMAGES_PATH/doswin d 0775 nwroot nwgroup
chmod 644 $IMAGES_PATH/doswin/revision
chown nwroot $IMAGES_PATH/doswin/revision
chgrp nwgroup $IMAGES_PATH/doswin/revision
installf $PKGINST $IMAGES_PATH/doswin/revision v 0644 nwroot nwgroup
# set up os2
echo "$OS2VER" > $IMAGES_PATH/os2/revision
echo "$OS2NUM" >> $IMAGES_PATH/os2/revision
echo "OS/2" >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_1 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_2 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_3 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_4 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_5 >> $IMAGES_PATH/os2/revision
echo $OS2_DISK_LABEL_6 >> $IMAGES_PATH/os2/revision
# installf directory for images
installf $PKGINST $IMAGES_PATH/os2 d 0775 nwroot nwgroup
chmod 644 $IMAGES_PATH/os2/revision
chown nwroot $IMAGES_PATH/os2/revision
chgrp nwgroup $IMAGES_PATH/os2/revision
installf $PKGINST $IMAGES_PATH/os2/revision v 0644 nwroot nwgroup
;;
esac
installf $PKGINST $IMAGES_PATH d 0775 nwroot nwgroup
installf -f $PKGINST
#
# if this is last package to be installed display final install screen
# if SMART_START do not display anything
#
if [ "$SMART_START" = "FALSE" ]
then
if [ -f /tmp/$PKGINST ]
then
# only display if the package addition was successful
/usr/bin/pkginfo -i nwsrvr > /dev/null 2>&1
if [ "$?" = "0" ]
then
# Initialize winxksh
. /usr/lib/winxksh/winrc
. /usr/lib/winxksh/scr_init
display -w "$INSTALL_WHAT_NEXT_WITH_REBOOT" \
-fg ${WHITE} -bg ${BLUE} \
-current "footer $HIT_ANY_KEY_TO_END"
input_handler
wclose $CURWIN
footer ""
ClearScreen
call endwin
fi
fi
fi
#
# Install SCOadmin stuff
#
/usr/bin/scoadmin -p NetWare -f -c /usr/lib/scoadmin/NetWare/NWClientDisk.obj
exit 0