Gestion usuarios shell script

Buenas soy un nuevo usuario y tengo unas dudas con una parte del proyecto de mi institucion educativa, la parte que me toco a mi fue shell script en bash con editor vi, quizas no sea el lugar donde tendria que postearlo pero comprendanme soy nuevo y estoy intentando salir de un apuro.
En el shell script el objetivo es crear una gestion de usuarios (crear, eliminar, modificar, etc).
Lo que pude hacer en base a lo que me pidieron fue esto:

#! /bin/bash
echo "*********BIENVENIDO A LA GESTION DE USUARIOS*********"

echo "[1] creacion de usuario"
echo "[2] modificar usuario"
echo "[3] borrar usuario"
echo "[4] dar de baja usuario"

read -p "ingrese la opcion que desee:" OPCION
case $OPCION in


1)
{
echo -n "#######CREACION DE USUARIOS#######"

# Me fijo si mi id es 0 (correspondiente a root) si no ocirre esto sale el script
# con OpenSuse para indicar que el usuario es root se escribe el comando "su"
# se necesitan permisos de root para crear usuarios nuevos
if [ "`id -u`" != 0 ] ; then
echo -e "\n"
echo "Necesito tener permisos de root para ejecutar mis tareas,"
exit 1
fi

echo -e "\n"
echo -e "\n"
echo "Ingrese el nombre del nuevo usuario: "
read nombre

# Si el nombre del usuario está vacío entonces salgo del script
if [ "$nombre" == "" ] ; then
clear
echo -e "\n"
echo "El nombre no puede estar vacío"
echo -e "\n"
exit 1
fi

echo -e "\n"
echo "Ingrese el directorio home (por defecto /home/$nombre): "
read home

# Si no ingreso ningún directorio home dejo el que viene por defecto
if [ "$home" == "" ] ; then
home="/home/$nombre"
fi

# Ingreso el grupo
echo "Ingrese el grupo"
echo "1) GERENCIA DE LOGISTICA"
echo "2) ENCARGADOS DE COMPRAS"
echo "3) ENCARGADOS DE DEPOSITOS"
echo "4) ENCARGADOS DE RECEPCION DE PEDIDOS"
echo "5) ENCARGADOS DE LAS SUCURSALES"
read grupo

if [ "$grupo" == "" ] ; then
echo "debe ingresar un grupo para el usuario, no se permiten datos vacios"
fi

echo "Ingrese el shell a utilizar (por defecto /bin/bash): "
read shell

# Si no ingreso ningún shell como por ejemplo un menu, dejo con el shell por defecto
if [ "$shell" == "" ] ; then
shell="/bin/bash"
fi


clear

# resumen de los datos ingresados
echo "Los datos ingresados son los siguientes:"
echo "****************************************"
echo -e "\n"
echo "Nombre del usuario: $nombre"
echo "Shell por defecto : $shell"
echo "Directorio home: $home"
echo "Grupo del usuario: $grupo"
echo "-------------------------------------------"
echo "Si los datos son correctos pulse una tecla,"
echo "de lo contrario pulse Ctrl+C para cancelar"
read

# Creo el usuario con las variables
useradd -d /home/$nombre -g $grupo -m -s $shell $nombre

# Si hay un error salgo del script
if [ "$?" != 0 ] ; then
echo -e "\n"
echo "Ha ocurrido un error, asegurese de que los datos ingresados son correctos."
exit 1
fi

# Por último pido la contraseña
echo -e "\n"
echo "Ingrese una contraseña para $nombre"
passwd $nombre

# Si la contraseña no dio ningún error y llegamos a este paso el usuario ya esta creado :)
echo -e "\n"
echo "El usuario fue creado satisfactoriamente"
};;





2)
{
echo "*******MODIFICAR USUARIO*******"
echo "ingrese el nombre de usuario que desea modificar"
echo "Usuarios registrados en el sistema actualmente"
echo ""
cat /etc/passwd | sort | cut -d ":" -f1 | column
echo ""
echo -e "Ingrese el Nombre del Usuario que desea modificar"
read nombre
modify = ""
while [ "$modify" != "4" ]
echo -e "1) modificar nombre"
echo -e "2) modificar contrasena"
echo -e "3) modificar grupo"
echo -e "4) volver al menu principal"
echo -e "elija una opcion"
read modify
case $modify in
1) clear
echo -e "ingrese el nuevo nombre de usuario: \n"
read nwnombre
echo "no ha ingresado ningun nombre por favor ingrese uno"
sudo usermod -1 $nwnombre -d /home/$nwnombre -m $nombre
echo "el nombre de usuario fue modificado correctamente"
;;

2) clear
sudo passwd $nombre
echo -e "se modifico correctamente la contrasena de usuario"
;;
3) clear
echo -e "ingrese el GID del nuevo grupo del usuario: \n"
echo "1) GERENCIA DE LOGISTICA"
echo "2) ENCARGADOS DE COMPRAS"
echo "3) ENCARGADOS DE DEPOSITOS"
echo "4) ENCARGADOS DE RECEPCION DE PEDIDOS"
echo "5) ENCARGADOS DE LAS SUCURSALES \n"
read nwgrupo
sudo usermod -g $nwgrupo $nombre
echo "se modifico el grupo del usuario correctamente"
;;
4)exit;;
*) echo "opcion erronea";;
esac
done
};;
3)
echo "********BORRAR USUARIO********"
if id|grep uid=0
then
read -p "Introduzca nombre de usuario que desea eliminar:" nombre
/usr/sbin/userdel -r $nombre
echo "el usuario se ha eliminado correctamente"
else
echo "se necesitan permisos de root"
fi;;

4)


echo "********BAJA DE USUARIO********"

if id|grep uid=0
then
read -p "introduzca el nombre de usuario que desea dar de baja:" nombre
usermod -1 *$nombre -d /home/$nombre $nombre
echo "el usuario se ha dado de baja correctamente"
fi;;

*) echo "opcion ingresada no valida, intente nuevamente"
exit 1;;
esac

Me da un error en la parte de modificacion de usuarios que no logro encontrar, agradeceria que pudieran ayudarme en esto, desde ya gracias.
Hay un motivo por el que los errores vienen con un mensaje explicativo. Explicar lo que pasa.

Pon dicho mensaje aqui.
1 respuesta