Having lots of users with kind of “magic hands” got us to think what they did not need to think about, so they could do more of their research.
Since we got everyone on AD using Quest (see previous post) we where able to launch the following script each time they log on their Desktops, making a nice direct access to all the resource from their groups and from their research.
Also, we used the library.
#!/bin/bash -x
#===============================================================================
#
# FILE: fbm_logon_script_workstation.sh
#
# USAGE: ./fbm_logon_script_workstation.sh
#
# DESCRIPTION:
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: Joan Marc Riera Duocastella (),
# COMPANY: Fundació Barcelona Media
# CREATED: 12/22/2010 11:07:00 AM CET
# REVISION: ---
#===============================================================================
set -o nounset # Treat unset variables as an error
logger -i -s "$0 - launched"
#clean temp files
LOGFILE=/$0.log
cd /tmp
exec 1>>$LOGFILE
exec 2>>$LOGFILE
SERVERIP="xxyy.tt.rrr"
SERVERPATH="scripts"
MASTERURL=http://$SERVERIP/$SERVERPATH
## Don't edit above this line
SCRIPTNAME=$0
DATETIME=`date +%Y%m%d%H%M%S`
HNAME=`hostname`
# load marcs library
tempscript="library.sh"
if [ ! -f /tmp/$tempscript ]
then
wget $MASTERURL/lib/$tempscript -O /tmp/$tempscript
. /tmp/$tempscript && rm /tmp/$tempscript
fi
# define environment
shootProfile
# check if USER env variable is set, or otherwise set it
[ -n "${USER:-x}" ] && USER=`whoami`
#check if .desktop exists else do it
if [[ -f /home/$USER/.config/user-dirs.dirs ]]
then
desktop_dir=/home/$USER/`grep XDG_DESKTOP_DIR /home/$USER/.config/user-dirs.dirs | cut -f2 -d\" | cut -f2 -d\/`
fi
if [[ -n "${desktop_dir:+x}" ]] && [[ ! -f "$desktop_dir/montar unitat de xarxa.desktop" ]]
then
case $OS in
linux )
tempscript="fs_fbm.tar"
;;
mac )
tempscript="fs_fbm_macosx.tar"
;;
* ) #at least try if there is luck
tempscript="fs_fbm.tar"
;;
esac
#download fs_fbm.tar
if [ ! -f /tmp/$tempscript ]
then
wget $MASTERURL/src/$tempscript -O /tmp/$tempscript
fi
cd /tmp
tar -xvf /tmp/$tempscript
rm /tmp/$tempscript
cd ${tempscript%%.???}
datasrc_dir="`pwd`/data"
#if [[ $CANGOSUDO -eq $TRUE ]]
#then
#we are not installing anything on a logonscript
# sudo ./install.sh
#else
cp $datasrc_dir/*.desktop $desktop_dir
chmod +x $desktop_dir/montar*.desktop
chmod +x $desktop_dir/desmontar*.desktop
#fi
# rm -r /tmp/${tempscript%%.???}
fi
#############################################fbm_mount end
##########################check sudoers
# :TODO:12/22/2010 11:09:09 AM CET:: if uptime>15 dies mail with reboot and upgrade request
uptime
exit 0
Expect script to mount the remote CIFS
#!/usr/bin/expect -f #mount cm01 software repository # Se definen la svariables USERNAME y PASS con el valor de los parametros que recibe el script. set USERNAME [lindex $argv 0] set PASS [lindex $argv 1] # Montar //fbmcm01/software en /home/sysop/fs con los credenciales del usuario pasado como parametro spawn mount.cifs //84.88.79.25/software /home/sysop/fs -o username=$USERNAME #spawn mount -t cifs //84.88.79.25/software /home/sysop/fs -o username=$USERNAME # Con la orden expect, indicamos la cadena de texto que esperamso que aparezca y con send, # se envia el parametro que queremso introducir de forma automatica expect "Password:^" sleep 5 send "$PASS\n" expect eof