Laboratorio de administración Linux: usuarios, permisos, cron y systemd en el navegador
Este laboratorio da a cada alumno un servidor Ubuntu propio que cuidar. Son cuatro tareas pequeñas, de las que un administrador de sistemas hace en la primera semana: añadir un usuario y un grupo, fijar los permisos de una carpeta compartida, programar una tarea con cron y escribir y activar un servicio de systemd. No se instala nada en el ordenador del alumno, y un script califica el resultado, así que no tienes que leer cada máquina.
Qué aprenden los alumnos
Usuarios y grupos: crear un grupo normal y un usuario normal con carpeta personal y un shell de inicio de sesión, y poner al usuario en el grupo sin darle derechos de administrador. Permisos de archivos: propietario, grupo y todos los demás, y el bit setgid que hace que los archivos creados en una carpeta compartida pertenezcan al grupo de la carpeta. Programación: una tarea en la carpeta cron del sistema, que tiene un campo de usuario que un crontab personal no tiene, y un archivo que cron ignora sin avisar si está mal escrito. Servicios: un archivo de unidad de systemd, lo que necesita para reiniciarse si falla y arrancar con el sistema, y el enlace que crea activar un servicio.
Las cuatro tareas
La tarea 1 es un grupo llamado devs y un usuario llamado maria dentro de él. La tarea 2 es la carpeta /srv/projects, que pueden usar los miembros del grupo y nadie más. La tarea 3 es una tarea diaria a las 02:30, ejecutada como root, para un script de copia de seguridad que da el laboratorio. La tarea 4 es un servicio llamado heartbeat para un script que da el laboratorio. El README que el laboratorio deja en la carpeta personal dice qué hacer en cada una y no da comandos, ni permisos, ni archivo de unidad.
Ejecútalo en tu navegador
Los laboratorios de máquina virtual se proponen como una tarea de laboratorio en un módulo, y el ejemplo está en la página del laboratorio. La máquina es pequeña: una CPU, 1 GB de memoria y 10 GB de disco.
- Añade el laboratorio. En un módulo que impartes, añade una tarea y elige la tarjeta «Laboratorio de máquina virtual Ubuntu». La página muestra una breve descripción de la máquina en lugar de un archivo compose.
- Parte del ejemplo. La página ofrece laboratorios de ejemplo para empezar. Elige Linux administration. Usar un ejemplo sustituye el texto, y «Deshacer» recupera el tuyo.
- Publica e inicia tu propia copia. Publica y después pulsa «Iniciar». El script de preparación del laboratorio instala cron desde el archivo de Ubuntu y escribe los dos scripts pequeños y el README la primera vez que se inicia la máquina virtual, en unos segundos.
- Abre el terminal. Abre su terminal y lee README.md en la carpeta personal: dice las cuatro tareas que hay que hacer y no da ninguna respuesta.
Una lección básica en este laboratorio
Linux Administration Basics es una lección pequeña que se hace en este laboratorio, que es una máquina virtual Ubuntu: cada paso está explicado y tiene un botón Ejecutar que escribe su comando en el terminal de la máquina y muestra lo que imprimió. El alumno pregunta quién es, comprueba que el grupo del equipo todavía no existe, lee en los permisos quién puede usar la carpeta de proyectos y ve qué tareas programadas hay.
La lección se limita a mirar alrededor y deja al alumno la tarea propia del laboratorio, hacer los cuatro trabajos, de modo que no da ninguna respuesta. Es deliberadamente pequeña: muestra a un profesor qué es una lección que se hace en un laboratorio, y el laboratorio hace el resto. Cópiala en un módulo tuyo para cambiarla.
Cómo se califica
El laboratorio tiene una comprobación. Se ejecuta sobre una copia de la máquina guardada tras un inicio en limpio, así que solo ve lo que el alumno guardó, recorre las cuatro tareas en orden y se detiene en la primera que no está bien. Lee el estado real: el usuario y el grupo, el propietario y el modo de la carpeta y un archivo creado en ella por el nuevo usuario y por alguien ajeno al grupo, el archivo cron en /etc/cron.d, y el archivo de unidad con el enlace que crea activar el servicio. Un crontab de usuario, una carpeta abierta a todos, un servicio iniciado pero nunca activado y una copia del archivo de unidad en lugar del enlace no superan la comprobación, y la primera línea de lo que imprimió dice qué tarea y por qué.
- Asígnalo. Asigna el laboratorio como cualquier tarea, con una fecha de entrega si quieres. Cada alumno recibe una máquina virtual propia, que se conserva de una sesión a otra.
- Ejecuta la comprobación. En la fila de un alumno de la lista de la clase, pulsa «Ejecutar la comprobación». Inicia una copia de su máquina guardada, sin guardar nada de vuelta, ejecuta como root el script de comprobación del laboratorio y muestra si se superó, qué imprimió y cuándo. Al alumno no se le comunica el resultado.
- Califícalo. Lee la primera línea de lo que imprimió la comprobación: nombra la primera tarea que no está bien y dice por qué. Devuelve el trabajo con un motivo si necesita más.
La definición en GitHub
El archivo es la definición completa del laboratorio, el mismo texto que ejecuta la plataforma: tamaño, script de preparación, README y comprobación. Cópialo y añade una tarea tuya, como un disco o una regla de cortafuegos, para hacer un laboratorio más largo.
Preguntas frecuentes
- ¿La comprobación ejecuta la tarea cron o inicia el servicio?
- No. Lee lo que se guardó: el propietario, el final y la única línea de tarea del archivo cron, y el archivo de unidad y el enlace que crea activarlo. Que la tarea se dispare a las 02:30 es cosa de cron una vez que el archivo es correcto.
- ¿Pueden los alumnos usar los comandos reales de administración?
- Sí, ese es el objetivo. El alumno tiene sudo en una máquina Ubuntu real, así que useradd, chmod y systemctl funcionan tal como se escriben. La máquina solo llega al archivo de Ubuntu, PyPI, npm y GitHub, y a nada más de Internet.
- ¿Se califica automáticamente el laboratorio de administración de Linux?
- Sí. Un script comprueba una copia de la máquina guardada tras un arranque nuevo, repasa las cuatro tareas en orden y se detiene en la primera que está mal. La primera línea de lo que imprimió dice qué tarea falla y por qué, así que no tienes que leer cada máquina.