La cuestión es que estoy iniciándome en esto de scriptear y me parece entretenido y bastante interesante, por lo que me he metido con algunos ejercicios básicos para coger carrerilla. Aquí viene el quid de la cuestión, tengo dos ejercicios, en uno de ellos tengo que realizar un script que cree un usuario con su correspondiente grupo, contraseña y shell, cosa que he conseguido. Este es el resultado:
Código
#!/bin/bash while [ continuar=S ] do read -p "Introduce el nombre de usuario a crear: " usuario if [ -z $usuario ] then echo "No se ha introducido ningun nombre de usuario, terminando tarea." sleep 3s; exit else if [ `grep -o "^$usuario" /etc/passwd` -n 0 ] then echo "Usuario introducido y creado correctamente." useradd $usuario else echo "El usuario ya existe en el sistema, terminando tarea." sleep 3s; exit fi fi read -p "Introduce el nombre del grupo al que pertenecera el usuario: " grupo if [ -z $grupo ] then echo "No se ha introducido un grupo, se ha asignado a $usuario al grupo 'users'." usermod -g users $usuario else if [ `grep -o "^$grupo" /etc/group` -n 0 ] then echo "Grupo creado y asignado correctamente." groupadd $grupo usermod -g $grupo $usuario else echo "Se ha asignado a $usuario al grupo $grupo." usermod -g $grupo $usuario fi fi read -p "Introduce la shell que utilizara el usuario: " if [ -z $shell ] then echo "No se ha introducido una shell, se ha asignado al usuario la shell '/bin/bash'." usermod -s /bin/bash $usuario else echo "Se ha asignado al usuario la shell $shell." usermod -s $shell $usuario fi read -p "Introduce la password para el usuario: " password if [ -z $password ] then echo "No se ha introducido ninguna password, el usuario estara bloqueado hasta que se le asigne una." else echo "Password de usuario creada correctamente." usermod -p `mkpasswd -m sha-512 $password` $usuario fi read -p "¿Continuar agregando usuarios? S/N: " continuar done
Hasta aquí todo perfecto, el script funciona perfectamente y sin errores, hasta que llega al final del script y el bucle while no se aplica. Es decir, lo que pretendo es que al llegar al final, el usuario responda a una pregunta con S o N y que en caso de ser S el script vuelva al inicio. Supongo que hay algo mal en el comando o en las variables que he puesto, pero no logro encontrar el fallo.
Por otro lado, en el segundo ejercicio me piden lo siguiente:
Citar
Crear un script que reciba un parámetro, que será un fichero de texto con varias líneas dentro de él y cada una de las líneas con dos campos separados por coma: un usuario y un grupo. El script debe comprobar línea por línea si el usuario existe en el sistema (y si existe indicarlo) y en caso contrario, crearlo e introducirlo en el grupo indicado a su lado. Además, debe comprobar que se ingresa el parámetro inicial (el nombre del fichero) y que el parámetro indicado existe en el sistema.
Había pensado usando comando grep y algún que otro read con condiciones para los casos en los que encuentre o no el usuario, pero me lío y no sé por donde empezar.
Agradezco de antemano la ayuda que me podáis aportar, gracias