Buenas,necesito un poco de luz con este script:
Tengo que hacer un script para dar de alta usuarios en el sistema masivamente.Los nombres de los usuarios que se crearán estarán escritos en un fichero de texto,con la llamada de:
crearusuaio grupo fichero
Donde el paràmetro “grupo” es el nombre del grupo principal que se ha de asignar a los usuarios i el paràmetro “fichero" és el nombre de un fichero de texto que contiene la lista de nombres de usuarios que se quieren crear. Si cualquiera de los paràmetros és erroneo, el programa da un error i finaliza.
Pej. si hace la llamad aasí:
crearusuario curso1 /tmp/llista
i /tmp/llista contiene las línias:
agonzale
mbarriga
laranaz
se crearan los usuarios agonzale, mbarriga i laranaz con un grupo primario curso1, directorio principal /home/nom_usuario i una contraseña inicial establecida igual al nombre del usuario.En la implementación del programa crearíamos la función crearusuario:
-CrearUsuario nombre grupo
Comprobaría si existe el usuario"nombre".Si no existiera lo crea con las siguientes características:
-Grupo primario
-Dierctorio personal: /home/nombre
-Permisos del directorio personal:750
-Contraseña inicial:nombre(no se pide de forma interactiva)
La función retorna un 0 si el usuario se créa bien y distinto de 0 si existía o daba problemas de creación.
El programa ha de retornar diferentes codigos de salida según los resultados,un 0 si todo a ido bien y un código numérico diferente para cada uno de los posibles errores:sintaxis de llamada al script incorrecta(nombre de parámetro incorrecto);el fichero pasado como parámetro no existe,el grupo pasado como parámetro no existe,el usuario ya existe,...
Cada uno de los mensajes que se van generando en la ejecución del script ha de ir precedido de la fecha y hora en que se genera el mensaje:
dd/mm/aa - hh:mm --> Texto del mensaje
Los mensajes han de salir por pantalla, però también han de quedar registrados en un fichero de registro ubicado en el directorio especificado por una variable LOG y definida al inicio del guión de shell. Para eso tenéis que utilizar una función nombrada mensaje que recibe como paràmetre el mensaje de salida. La implementación de la función és la sigiente:
mensaje () {
DATA=$(date +"%x - %X")
echo "$DATA --> $1"
echo "$DATA --> $1" >> $LOG
}