Continuamos con la serie de ejercicios de scripts que iniciamos en el entrada Ejercicios de Scripts, dándole una vuelta a alguno de estos scripts y creando nuevos scripts que nos permitan automatizar algunas tareas típicas de administración de sistemas.
newUserList.sh
Resulta que hemos detectado la necesidad de añadir varios usuarios a un grupo del sistema. Por supuesto, necesitamos que tanto los usuarios como el grupo existan en el sistema, tengan cuenta de usuario y de grupo.
Crea un script llamado newUserList.sh que funcionará de forma parecida al script newUser.sh. Este script recibirá el nombre de un grupo y una lista variable de nombres de usuarios de al menos un usuario.
Antes de poder realizar su operación, vamos a realizar un control de errores para evitar situaciones no válidas. En caso de no cumplirse alguna de las situaciones mostraremos un mensaje de error y terminaremos la ejecución del script.
- El script debe ser ejecutado por root. [opcional]
- Comprobaremos que se reciben al menos dos parámetros, uno para el grupo y una lista variable de usuarios con al menos un usuario.
- El grupo debe existir en el sistema.
Para cada usuario, si no existe una cuenta de usuario, mostraremos un mensaje de advertencia, pero no terminaremos con la ejecución del script. Si el usuario si existe, lo añadimos al grupo.
Al final, mostraremos información con el nombre del grupo y los miembros del grupo.

Cómo quedaría




createUserList.sh
Crea un script llamado createUserList.sh que reciba por parámetro una lista de usuarios. El script creará una cuenta de usuario para cada usuario pasado en la lista variable de usuarios si no existía en el sistema previamente.
Además la cuenta de usuario utilizará como shell /bin/bash y se creará un directorio personal para el usuario. Asignará a cada nueva cuenta de usuario como contraseña la contraseña ClaveRoot#20.
Ayuda!
En este script tenemos que utilizar el comando useradd para crear cuentas de usuario en lugar del comando adduser. Esto es así puesto que no queremos tener que insertar de forma interactiva la contraseña de cada usuario nuevo.
Para que se cree una cuenta con useradd con su directorio personal y utilizando la shell /bin/bash, tendremos que utilizar un par de opciones. Consulta la página de manual del comando useradd.
Para establecer la contraseña de una cuenta de usuario que ya existe en el sistema habitualmente utilizamos el comando passwd como root. No obstante, en este script no podemos utilizar este comando porque no queremos tener que interactuar en tiempo de ejecución con el script.
Tenemos que utilizar el comando chpasswd que espera recibir por entrada un tupla del estilo: «nombre_usuario:contraseña». Esta información se la tenemos que pasar a través de una tubería. Para poder pasar tan solo la cadena de texto nombre_usuario:contraseña utilizarmos el comando echo.
De esta forma, el comando para establecer una contraseña, por ClaveRoot#20, a un usuario, por ejemplo marinapg, será:

Vamos a ver cómo crear una cuenta de usuario con useradd



Lo probamos


Lo probamos?

Vaya los directorios se han creado para la configuración de permisos es muy abierta.
