137 lines
4.5 KiB
Bash
137 lines
4.5 KiB
Bash
|
#!/bin/bash
|
|||
|
SHELL=/bin/bash
|
|||
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/root:/root/save.sh:/usr/local/bin:/sbin/e-smith
|
|||
|
##. /etc/profile
|
|||
|
##. /root/.bash_profile
|
|||
|
DATEHEURE=`date +'%Y-%m-%d %H:%M:%S'`
|
|||
|
#IFS="^M"
|
|||
|
status_mediaG=$(/sbin/e-smith/db configuration getprop usbdisks status_mediaG)
|
|||
|
status_mediaG=${status_mediaG:-'disabled'}
|
|||
|
status_mediaU=$(/sbin/e-smith/db configuration getprop usbdisks status_mediaU)
|
|||
|
status_mediaU=${status_mediaU:-'disabled'}
|
|||
|
rm -f /tmp/lecteurs
|
|||
|
|
|||
|
interdit=('/boot' '/etc' '/lib' '/mnt' '/package' '/service' '/tmp' '/command' '/home' '/proc' \
|
|||
|
'/sbin' '/srv' '/usr' '/bin' '/dev' '/initrd' '/media' '/root' '/selinux' '/sys' '/var')
|
|||
|
# liste des disques a surveiller + enable
|
|||
|
db confusbdisks keys > /tmp/usbdisks_keys
|
|||
|
|
|||
|
##### les disuqes <20> surveiller
|
|||
|
for UUID in $( cat /tmp/usbdisks_keys ) # pour chaque entr<74>e de usbdisks
|
|||
|
do
|
|||
|
|
|||
|
|
|||
|
status=$( /sbin/e-smith/db confusbdisks getprop $UUID status )
|
|||
|
#####auto mount_to
|
|||
|
if [ $status == "enabled" ] # si actif
|
|||
|
|
|||
|
then
|
|||
|
montage=$(/sbin/e-smith/db confusbdisks getprop $UUID mountto)
|
|||
|
#verifier si ce montage est autoris<69>
|
|||
|
autorise=$(echo ${interdit[@]}|grep $montage)
|
|||
|
if [ -z "$autorise" ] && [ -e "$montage" ]
|
|||
|
then # si le montage n'est pas sur un interdit et existe
|
|||
|
##echo "OK $UUID "$montage
|
|||
|
##echo "OK $UUID "$(/sbin/e-smith/db confusbdisks getprop $UUID status)
|
|||
|
# est il connect<63>
|
|||
|
connected=$(blkid -t UUID=$UUID)
|
|||
|
if [ -z "$connected" ] # pas connect<63>
|
|||
|
then
|
|||
|
echo "$UUID : pas connect<63>"
|
|||
|
else #connect<63>
|
|||
|
|
|||
|
device=$(blkid -t UUID=$UUID |cut -f1 -d:)
|
|||
|
mounted=$(mount|grep "$device on $montage")
|
|||
|
if [ -z "$mounted" ] # pas mont<6E>
|
|||
|
then
|
|||
|
# UUID pas support<72> pour vfat
|
|||
|
options=$(/sbin/e-smith/db confusbdisks getprop $UUID options)
|
|||
|
options=${options:-"pamconsole,exec,noauto,managed"}
|
|||
|
#monter=$(mount -U $UUID $montage -o pamconsole,exec,noauto,managed)
|
|||
|
monter=$(mount $device -t auto $montage -o $options)
|
|||
|
if [ -n "$monter" ]
|
|||
|
then
|
|||
|
echo "echec montage : $UUID"
|
|||
|
fi
|
|||
|
else #mont<6E>
|
|||
|
echo "$UUID : d<>j<EFBFBD> mont<6E> rien <20> faire"
|
|||
|
fi # fin pas mont<6E>
|
|||
|
fi # fin pas connect<63>
|
|||
|
else # si n'est pas autoris<69> ou existe pas
|
|||
|
echo "$UUID : $montage interdit ou inexistant"
|
|||
|
fi # fin de montage autoris<69>
|
|||
|
else # si inactiv<69>
|
|||
|
echo "$UUID => disabled rien <20> faire"
|
|||
|
fi
|
|||
|
|
|||
|
|
|||
|
#####auto mount media
|
|||
|
if [ $status_mediaG == "enabled" ]
|
|||
|
then
|
|||
|
status_media=""
|
|||
|
status_media=$(/sbin/e-smith/db confusbdisks getprop $UUID status_media)
|
|||
|
status_media=${status_media:-"disabled"}
|
|||
|
if [ $status_media == "enabled" ] # si montage actif pour ce disque
|
|||
|
then
|
|||
|
connected=$(blkid -t UUID=$UUID)
|
|||
|
if [ -z "$connected" ] # pas connect<63>
|
|||
|
then
|
|||
|
echo "$UUID : pas connect<63>"
|
|||
|
else #connect<63>
|
|||
|
device=$(blkid -t UUID=$UUID |cut -f1 -d:)
|
|||
|
mounted=$(mount|grep "$device on /media")
|
|||
|
if [ -z "$mounted" ] # pas mont<6E>
|
|||
|
then
|
|||
|
# UUID pas support<72> pour vfat
|
|||
|
monter=$(mount $device)
|
|||
|
if [ -n "$monter" ]
|
|||
|
then
|
|||
|
echo "echec montage media : $UUID"
|
|||
|
fi
|
|||
|
else #mont<6E>
|
|||
|
echo "$UUID : d<>j<EFBFBD> mont<6E> en media rien <20> faire"
|
|||
|
fi # fin pas mont<6E>
|
|||
|
fi # fin pas connect<63>
|
|||
|
fi # si montage actif pour ce disque
|
|||
|
fi # si pas desactiv<69> globalement
|
|||
|
|
|||
|
|
|||
|
# ecriture des lecteur connect<63>s
|
|||
|
|
|||
|
connected=$(blkid -t UUID=$UUID)
|
|||
|
if [ -n "$connected" ] #
|
|||
|
then
|
|||
|
device=$(blkid -t UUID=$UUID |cut -f1 -d:)
|
|||
|
echo $device >>/tmp/lecteurs
|
|||
|
fi
|
|||
|
|
|||
|
done
|
|||
|
|
|||
|
|
|||
|
# montage des disques non d<>clar<61>s en auto dans media
|
|||
|
|
|||
|
if [ $status_mediaU == "enabled" ]
|
|||
|
then
|
|||
|
echo "on monte les disques "
|
|||
|
|
|||
|
cat /etc/fstab |grep "/media/"|grep -v "/media/cd"|grep -v "/media/dvd"|cut -f1 -d" ">/tmp/usbdisks_mediaU
|
|||
|
for LECTEUR in $( cat /tmp/usbdisks_mediaU ) # pour chaque entr<74>e de usbdisks
|
|||
|
do
|
|||
|
present=$(cat /tmp/usbdisks_mediaU|grep $LECTEUR)
|
|||
|
if [ -z $present ]
|
|||
|
then
|
|||
|
#echo $LECTEUR
|
|||
|
repertoire=$(cat /etc/fstab |grep "$LECTEUR"|awk '{print $2}')
|
|||
|
#echo $repertoire
|
|||
|
if [ -d $repertoire ]
|
|||
|
then
|
|||
|
mount $repertoire
|
|||
|
fi
|
|||
|
else
|
|||
|
echo "$LECTEUR appartient <20> une regle connu on ne touche pas"
|
|||
|
fi
|
|||
|
|
|||
|
|
|||
|
done
|
|||
|
fi
|