educación, informática y demás

26.03 - Automatizacion I

Ejercicios de Scripts (6)

Realiza los scripts que se proponen en esta publicación.

Como siempre se valorará:

  • Que el script realice la función que se solicita cómo se solicita de forma correcta
  • Compruebe y controles situaciones de error en tiempo de ejecución
  • Utilice variables con nombres significativo que mejoren la legibilidad y mantenimiento del script
  • Utilice funciones que faciliten la legibilidad del código y la reutilización de código.

newUsers.sh

Crea un script llamado newUsers.sh que reciba por parámetro una lista variable de usuarios, con al menos un usuario. El script realizará operaciones de administración así que deberíamos asegurarnos de que se podrán realizar este tipo de operaciones desde el principio.

Una vez realizadas las comprobaciones pertinentes. el script solicitará al operador por teclado el nombre de un grupo del sistema. Si el operador inserta el nombre de un grupo, comprobamos si exsite en el sistema, si el grupo no existe se mostrará un mensaje de error adecuado y se terminará la ejecución del script.

Para cada usuario pasado por parámetro, comprobaremos si el usuario existe en el sistema. Si el usuario no existe en el sistema, crearemos una cuenta de usuario nueva, con un directorio personal y como shell /bin/bash. Le asignaremos como contraseña la contraseña ClaveRoot#20. Si el usuario tiene cuenta de usuario en el sistema, se mostrará un mensaje indicando la situación.

Una vez con la cuenta de usuario en el sistema, añadiremos el usuario al grupo seleccionado por el operador.

Solución

Vamos a proponer una posible solución al problema.

newUsers.sh versión 2

Partiendo del script anterior, queremos añadir un par de mejoras identificada por los operadores después de su uso. Estaría bien que si el grupo no existe, se pudiera crear desde el propio script. Además, una vez añadidos los usuarios al grupo, se pide que se muestren en pantalla los miembros del grupo.

Así pues, el funcionamiento y restricciones del script serán los mismos, solo que ahora si comprobamos que el grupo no existe en el sistema preguntaremos al operador si desea crearlo. Si la respuesta es afirmativa, entonces crearemos el grupo. Si la respuesta no es afirmativa, entonces terminaremos la ejecución del script con un mensaje de error.

Solución

newUsers.sh versión 3

Partiendo de la versión 2 del script, queremos añadir un par de mejoras que nos han sugerido los operadores.

Habrá ocasiones en las que queramos añadir usuarios al sistema pero no queremos que se agreguen a ningún grupo. Por tanto, si el operador no añade ningún nombre de grupo por teclado, el script simplemente creará las cuentas de los usuarios que no tengan cuenta en el sistema, sin añadir ninguna cuenta de usuario a ningún grupo. En este caso, si el grupo está vacío, no se mostrarán los miembros del grupo, cómo es lógico.

Se repite en muchas ocasiones la situación en la que un operador quiere añadir a todos los usuarios a varios grupos distintos. Así que se pide que una vez terminada la función del script se pregunte al operador si desea añadir a los usuario a otro grupo. En caso afirmativo, volver a a realizar el proceso de solicitud de grupo, comprobación y añadir usuarios al grupo. Si el operador no responde afirmativamente, el script terminará su ejecución.

newUsersList.sh

De nuevo los operadores nos solicitan más que una nueva versión del script, un nuevo script en el que se reciba por parámetro el nombre del grupo seguido por una lista variable de usuarios de al menos un usuario.

El script realizará las mismas comprobaciones que el script newUsers.sh y además que se pasan por parámetro cómo mínimo el nombre del grupo y la lista de al menos un usuario.

A continuación realiza la misma función de newUsers.sh pero sin solicitar información por teclado. Tiene toda la información en los parámetros de entrada del script. Así que tendrá que tomar alguna decisión en lugar de solicitarlas: si el grupo no existe, lo crea.