En este documento se presentan algunos ejemplos de shell scripts para practicar con ellos.
grpId.sh
Crea un script llamado grpId.sh que reciba por parámetro el nombre de un grupo del sistema. Si no se recibe ningún parámetro el script deberá mostrar un mensaje de error adecuado y terminar la ejecución del script con un valor de retorno de error.
El script comprobará si el grupo existe en el sistema. Si el grupo no existe, mostrará un mensaje indicando que dicho grupo no existe en el sistema, sino el script mostrará la información pertinente del grupo de forma similar como lo hace el comando id para usuarios. En una línea mostrará el nombre del grupo, entre paréntesis su GID, después mostrará los miembros del grupo y, por último, deberá mostrar los usuarios que tienen como grupo principal a dicho grupo.
Para ello tendrás que consultar los ficheros de cuentas de usuario y de grupo del sistema.
grpAddUsers.sh
Vamos a crear un script grpUsers.sh que permita añadir varios usuarios a un grupo. Para ello el script recibirá múltiples parámetros. El primer parámetro será el nombre de un grupo del sistema, el resto de parámetros serán cuentas de usuario del sistema.
Si no se pasa cómo mínimo el nombre del grupo por parámetro y de un usuario, el script deberá mostrar un mensaje de error indicando que es obligatorio proporcionar al menos el nombre del grupo y de un usuario por parámetro. Además se mostrará la sintaxis del script y se terminará el script retornando con código de error.
Si el grupo pasado por parámetro no existe en el sistema, se mostrará un mensaje de error indicando que no existe el grupo en el sistema.
Recorreremos la lista de usuarios que tendremos desde el parámetro 2 al último parámetro realizando una serie de comprobaciones y acciones. Para recorrer la lista de parámetros desde el parámetro 2 al último, saltando el primer parámetro tendremos que utilizar el comando shift. Echa un vistazo a la ayuda de shift con el comando help.
Para cada usuario de la lista de usuarios pasado por parámetro, haremos lo siguiente:
Si el usuario no existe en el sistema mostramos un mensaje de advertencia adecuado (no terminamos con la ejecución del script)
Sino si el usuario ya pertenece al grupo, mostramos un mensaje de advertencia adecuado (no terminamos con la ejecución del script)
Solo si el usuario existe y no pertenece al grupo ya, lo añadimos como nuevo miembro del grupo y mostramos un mensaje de la operación realizada.
Una vez terminada la operación de añadir nuevos usuarios al grupo, mostraremos información del grupo utilizando el script grpId.sh creado anteriormente.