Script de la opción A del examen

#!/bin/bash
#
#Opción A del examen
# Script que controla si alguna carpeta de
# perfil ocupa más de una determinada cantidad
# de MB. Si lo hace avisa y pregunta si se desea
# bloquear el acceso del usuario.
#
# Primero guardo en una variable el límite permitido

LIMITE=20

# Por medio de un for recorro todos los objetos
# que encuentre en /home

LISTA=`ls /home`
for HOGAR in $LISTA
do
#Si lo que encuentra no es un directorio salta al siguiente
if ! [ -d /home/$HOGAR ]
then
continue
fi
# Capturo el tamaño de los directorios en MB y lo comparo
#con el límite fijado en la variable; si no lo supera
#salta al siguiente
PESO=`du -sm /home/$HOGAR | cut -f1`
if ! [ $PESO -gt $LIMITE ]
then
continue
fi
# Si llega hasta aquí es que la carpeta del perfil
#existe y supera el límite fijado, así que busco
#a qué usuario pertenece por medio de /etc/passwd,
#aviso y pregunto si se quiere prohibir el acceso.
USUARIO=`more /etc/passwd | grep ":/home/${HOGAR}:" | cut -d":" -f1`
clear
echo "El usuario $USUARIO ha superado el límite de $LIMITE MB."
echo -n "¿Le prohibimos el acceso? "
read -sn 1 -p "s/n " OPC
#Si responde que sí lo que haré es capturar su
#línea en /etc/passwd excepto la shell. Luego
#eliminaré la línea del archivo y la volveré a
#introducir con /bin/false como shell
if [ ${OPC} == "s" -o ${OPC} == "S" ]
then
LINEA=`more /etc/passwd | grep ^${USUARIO}: | cut -d":" -f1-6`
more /etc/passwd | grep -v ^${USUARIO}: > /tmp/passwd.mio
echo "${LINEA}:/bin/false" >> /tmp/passwd.mio
mv -f /tmp/passwd.mio /etc/passwd
echo "El usuario $USUARIO ha sido bloqueado"
FALLIDOS="${FALLIDOS}:$USUARIO"
sleep 2
fi
done
echo 'Hecho'
test -z $FALLIDOS || echo -e "Los siguientes usuarios han sido bloqueados$FALLIDOS"
read -sn 1 BASURA
clear