|
#!/bin/bash
|
|
#Para ejecutar en el servidor nfs
|
|
#Copia un fichero en el escritorio de todos los alumnos.
|
|
#Si se añade el parametro -i el fichero se hace inmutablep para que no pueda ser borrado
|
|
#Alfonso Pastor. IES Virgen de Guadalupe.
|
|
|
|
function error() {
|
|
echo "Uso: $0 [-i] fichero"
|
|
echo " -i : hacer el fichero inmutable tras copiarlo"
|
|
exit
|
|
}
|
|
|
|
function copiar_escritorio() {
|
|
# 3 parametros: ruta home destino, fichero a copiar, "I" hacerlo inmutable
|
|
|
|
destino=$1
|
|
fichero=$2
|
|
inmutable=$3
|
|
|
|
uid=$(stat -c%u $destino)
|
|
if test ! -d $destino/Desktop
|
|
then
|
|
echo "El usuario $destino no tiene escritorio. Creandolo...."
|
|
mkdir $destino/Desktop
|
|
chown $uid:$uid $destino/Desktop
|
|
chmod 2755 $destino/Desktop
|
|
fi
|
|
cp -p $fichero $destino/Desktop
|
|
chown $uid:$uid $destino/Desktop/$fichero
|
|
if [ "$inmutable" = "I" ]
|
|
then
|
|
chattr +i /home/alumnos/$i/Desktop/$fichero
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
if test $# -eq 0
|
|
then
|
|
error
|
|
fi
|
|
|
|
if [ "$1" = "-i" ]
|
|
then
|
|
cambiar="I"
|
|
fichero=$2
|
|
if test -z "$fichero"
|
|
then
|
|
error
|
|
fi
|
|
else
|
|
cambiar="N"
|
|
fichero=$1
|
|
fi
|
|
|
|
echo "Fichero a copiar: $*"
|
|
for i in $(ls /home/alumnos); do
|
|
echo "Copiando al escritorio del alumno $i"
|
|
copiar_escritorio /home/alumnos/$i $fichero $cambiar
|
|
done
|
|
|