educación, informática y demás

24.13 - Repaso general

Ejercicio de Scripts: Gestión de Usuarios, grupos y sistemas de ficheros

Solución propuesta

Primero analizamos el enunciado, sacamos la estructura y las funciones que debe realizar el script.

  • Control de errores
  • Gestión de usuario alumno
  • Gestión de grupos

Estructura base del script

Control de errores

Gestión del usuario alumno

Nos aseguramos de que la función se invoca. En este caso no le pasamos parámetros porque vamos a trabajar con una variable global, pero podríamos pasarle parámetro si nos apetece

Otra opción es utilizar valores por parámetro en la función. Como hemos dicho anteriormente, una función es como un «mini script» dentro de otro script.

La idea es centrarnos en lo que estamos haciendo en cada momento. Cuando creamos una función nos centramos en su funcionalidad, sin tener que tener en mente toda la funcionalidad del script completo. Lo que acabamos de hacer es cómo si hubieramos creado un script que solo realizara la parte de gestión del usuario alumno. Algo así:

Este script tiene una complejidad manejable, igual que la función que acabamos de escribir. Nos centramos solo en la parte del usuario.

Enlaces simbólicos

Gestión de grupos

En esta parte del script nos vamos a centrar en la funcionalidad de grupos. Hemos detectado las siguientes acciones a realizar cuando hemos analizado el enunciado.

  1. Añadir al usuario al grupo skills
  2. Si me pasan grupo, asegurarme de que exista y añadir el usuario al grupo $grupo

Necesitamos las variables:

  • $usuario
  • $grupo

Nos centramos solo en esta parte del script. Pero antes, nos aseguramos de que se invoca o llama en el punto adecuado del script

Ahora nos centramos solo en la función.

De nuevo, si consideramos la función como un mini script, el script independiente sería el siguiente

Resultado final

Esta es la funcionalidad del script utilizando funciones. No se cómo lo hacen pero…

  • error. La función error muestra un mensaje pasado por parámetro por pantalla y termina la ejecución del script con código de salida 1
  • crearRecursosAlumno
    • Crea la cuenta de usuario del alumno si no existe
    • Crea el directorio del alumno si no existe y lo configura
    • Crea un enlace simbólico con nombre estudiante en el directorio personal del alumno que apunta al directorio del alumno
  • gestionarGrupos
    • Añade el usuario al grupo skills.
    • Si se proporciona el nombre de un grupo
      • Crea el grupo si no existe
      • Añade el usuario al grupo.

error. La función error muestra un mensaje pasado por parámetro por pantalla y termina la ejecución del script con código de salida 1

crearRecursosAlumno

  • Crea la cuenta de usuario del alumno si no existe
  • Crea el directorio del alumno si no existe y lo configura
  • Crea un enlace simbólico con nombre estudiante en el directorio personal del alumno que apunta al directorio del alumno

gestionarGrupos

  • Añade el usuario al grupo skills.
  • Si se proporciona el nombre de un grupo
  • Crea el grupo si no existe
  • Añade el usuario al grupo

Código completo

Vamos a probarlo 🙂

Oh my gosh!

Releyendo el enunciado, tras explicar el proceso, me he dado cuenta de que el script no está donde debiera… dentro del directorio /scripts. No es un problema que no podamos solucionar como Administradores de Sistemas 😉

Dejar una respuesta