educación, informática y demás

2405 - Scripts GNU/Linux

Shift y case

creaSkills.sh – Versión 01

Crea un script llamado creaSkill.sh que recibirá los siguientes parámetros obligatorios:

  1. Nombre de la skill
  2. Tutor
  3. Lista variable de alumnos

El script deberá crear un directorio dentro del directorio /educatica con el nombre de la skill. Además deberá crear, solo si no existe, un grupo con el nombre de la skill y un usuario para el tutor y cada uno de los alumnos, añadiéndolos al grupo de la skill.

Solución propuesta

El código principal quedaría así:

Por supuesto, falta mucha información… variables y funciones, pero trata de analizar lo que hace el script atendiendo solo a este código.

Aquí tienes el script completo.

creaSkills.sh – Versión 02

Vamos a crear algunos directorios más y configurar los permisos de dichos directorios para controlar el acceso a lo que ahí se almacene.

El directorio de la skill lo configuraremos de forma que tan solo puedan acceder con permisos de lectura los usuarios que pertenezcan a esta skill. Además, el tutor de la skill será el usuario que podrá realizar operaciones de lectura y escritura.

Vamos a crear un directorio llamado usuarios dentro del directorio de la skill. Lo configuraremos con los mismos permisos que en el caso del directorio de la skill. Dentro de este directorio, crearemos, solo si no existe, un directorio para cada usuario de la skill, dónde tan solo podrá acceder para realizar cualquier operación el usuario.

creaSkills.sh – Versión 03: benditas opciones

Vamos a darle una vueltita a nuestro script permitiendo elegir una opción para realizar distintas acciones con nuestro script. En el tercer parámetro, que es obligatorio como sabemos, vamos a permitir que el operador pueda insertar una operación con una sola letra de las siguientes:

  • h: Muestra una pequeña ayuda sobre el uso del script
  • l: Muestra la lista de usuarios que pertenecen al grupo de la skill. Si el grupo no existe, mostrará un mensaje de error informando del problema.

Dejar una respuesta