smeserver-usbdisksmanager/root/usr/sbin/usbdisks.sh

137 lines
4.5 KiB
Bash
Raw Normal View History

#!/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