Ejercicios prácticos de administración en Linux

Ejercicio A

Al ejecutar cat /etc/shells se muestran todos los intérpretes de comandos (shells) disponibles en el sistema. Este archivo contiene una lista de todas las shells instaladas.

PASOS:

  • Ejecutar: echo $SHELL
  • Resultado: ruta completa del shell actual (ej.: /bin/bash)
  • También: echo $0

Ejercicio B

Al ejecutar umask sin argumentos aparece un número de 4 dígitos (ej.: 0022) que representa la máscara de permisos por defecto.

Afecta a:

  • Permisos de archivos nuevos creados
  • Permisos de directorios nuevos creados

Ejemplos de uso:

  • umask 0077 — archivos nuevos más restrictivos (solo propietario)
  • umask 0022

Ejercicio C

  • tty2: Terminal física / consola de texto. Accesos mediante Ctrl+Alt+F1, F2, etc. Se considera login shell.
  • pts0: Pseudo-terminal esclava. Terminales abiertas desde el entorno gráfico. Se considera no-login shell (hereda el entorno de la sesión gráfica).

Ejercicio D

Origen: Directorio /etc/skel.

Característica: Son ficheros ocultos que comienzan con punto (.).

Ejemplo: .profile

Ejercicio E

Ubicación: Carpeta /usr/sbin/.

Significado: Es un intérprete de comandos especial que impide el acceso al terminal a un usuario. Cuando se asigna como shell, el usuario NO puede iniciar sesión interactiva.

Uso típico: Se asigna a cuentas del sistema (usuarios de servicio / demonios) para evitar que puedan hacer login.

Ejercicio F

Fichero: /etc/shadow

  • ! = Cuenta deshabilitada o sin contraseña válida
  • * = Cuenta deshabilitada
  • Cadena larga = Contraseña cifrada irreversiblemente (SHA, MD5, bcrypt, etc.)

Algoritmos: Los primeros caracteres de la cadena indican el método: por ejemplo, $6 = SHA-512, $2 = bcrypt (existen variantes como $2a, $2b, $2y).

Ejercicio G

Un usuario puede pertenecer a:

  • 1 grupo principal (obligatorio)
  • Múltiples grupos secundarios (sin límite)

Un grupo puede contener:

  • Múltiples usuarios
  • NUNCA otros grupos (solo usuarios)

Ejercicio H

Permisos necesarios: 1733 (notación octal)

Explicación:

  • 1 = Sticky bit (evita eliminación de archivos ajenos)
  • 7 = Propietario (jeferrhh): rwx
  • 3 = Grupo (rrhh): -wx
  • 3 = Otros: -wx

Comandos:

  • sudo chown jeferrhh:rrhh /ccvv
  • sudo chmod 1733 /ccvv

Alternativa simbólica: sudo chmod u=rwx,g=wx,o=wx,+t /ccvv

Verificación: drwx-wxrwxt.

Ejercicio I

Análisis de permisos:

-rws r-x r-x

  • «-» = archivo regular
  • rws = propietario (root): lectura, escritura y setuid (s)
  • r-x = grupo: lectura y ejecución
  • r-x = otros: lectura y ejecución

Notación octal: 4755 (donde 4 indica setuid)

Comandos ejecutados: sudo chmod 4755 /usr/lib/cbox

Permite ejecutar cbox con permisos de root.

Ejercicio J

Paso 1: Crear grupo desarrollo

  • sudo groupadd desarrollo

Paso 2: Crear usuarios

  • sudo adduser jddev
  • sudo adduser dev1
  • sudo adduser dev2

Paso 3: Añadir usuarios al grupo desarrollo

  • sudo usermod -a -G desarrollo jddev
  • sudo usermod -a -G desarrollo dev1
  • sudo usermod -a -G desarrollo dev2

Paso 4: Crear directorios

  • sudo mkdir -p /desarrollo/dev
  • sudo mkdir -p /desarrollo/mkt

Paso 5: Configurar /desarrollo/dev

  • Propietario: jddev
  • Grupo: desarrollo
  • Permisos: 770 (rwxrwx---)
  • sudo chown jddev:desarrollo /desarrollo/dev
  • sudo chmod 770 /desarrollo/dev

Paso 6: Configurar /desarrollo/mkt

  • Propietario: jddev
  • Grupo: desarrollo
  • Permisos: 775 (rwxrwxr-x) para que otros puedan leer
  • sudo chown jddev:desarrollo /desarrollo/mkt
  • sudo chmod 775 /desarrollo/mkt

2RA2 Ejercicio A

Herramientas gráficas:

  1. lxtask (Gestor de tareas): sudo apt install lxtask – Analiza programas en ejecución (similar al Administrador de tareas de Windows).
  2. GNOME System Monitor (Monitor del sistema): sudo snap install gnome-system-monitor – Monitoriza procesos y permite acciones sobre ellos.

Estados NO deseables: D (Uninterruptible Sleep – letargo no interrumpible) y Z (Zombie).

Ejercicio B

OPCIÓN 1: Con top

OPCIÓN 2: Directamente con top -o MEM

OPCIÓN 3: Con ps: ps aux --sort=-%mem

OPCIÓN 4: Con la tecla Shift en top (ordenar).

Ejercicio C

Objetivo: Reducir prioridad de app1

  • Paso 1: Obtener el PID de app1: pidof app1 o ps aux | grep app1
  • Paso 2: Asignar prioridad mínima (nice = 19): sudo renice -n 19 1234 (ejemplo)
  • Paso 3: Verificar: ps -l -p 1234

Ejercicio D

Uso: el comando trap captura señales en scripts bash y ejecuta acciones específicas en respuesta.

Limitaciones:

  • SIGKILL (señal 9) NO se puede atrapar
  • SIGSTOP (señal 19) NO se puede atrapar
  • Solo funcionan con señales capturables

Ejercicio E

¿Qué es &? Operador que envía un proceso a ejecución en segundo plano (background).

Objetivo:

  • El shell sigue aceptando nuevos comandos mientras el proceso se ejecuta.
  • Proceso padre y proceso hijo se ejecutan concurrentemente.
  • El shell NO espera a que termine el proceso hijo.

Ejercicio F

Comando ejecutado: jobs

Letra que identifica el estado de los procesos (campo STAT):

  • Comandos 1, 2, 3 (Ejecutando): R (Running)
  • Comando 4 (Detenido): T (Stopped)

Ejercicio G

Del proceso rkkit-daemon podemos decir: es un proceso demonio / servicio que:

  • Se ejecuta en segundo plano
  • No tiene interfaz de usuario (aparece ? en ps aux)
  • No utiliza entradas/salidas estándar
  • Se comunica mediante archivos de registro (logs)
  • Generalmente ejecutado por el sistema o root
  • Es un proceso no interactivo
  • Proporciona funcionalidad de soporte al sistema

Ejercicio H

¿Qué harías? Crear un archivo de servicio para systemd que inicie pegasus durante el arranque (boot).

¿Por qué?

  • systemd es el sistema de inicialización moderno en Linux.
  • Permite gestionar servicios de forma centralizada.
  • Garantiza ejecución automática al arrancar.
  • Control sencillo (start, stop, restart, status).

PASOS:

  • Paso 1: Crear archivo de servicio: crear /etc/systemd/system/pegasus.service
  • Paso 2: Recargar configuración: sudo systemctl daemon-reload
  • Paso 3: Habilitar para boot: sudo systemctl enable pegasus
  • Paso 4: Verificar: sudo systemctl status pegasus

3RA2 Ejercicio A

Comando su (switch user / substitute user): uso para cambiar a otro usuario o a root sin cerrar la sesión actual.

Comando sudo (super user do): uso para ejecutar un comando específico con permisos de root.

Comando sudo su: ejecutar su con permisos de root (obtener un shell de root).

Ejercicio B

Comando para administrar servicios: systemctl

Editar /etc/sudoers: editar con sudo visudo y agregar al final (ejemplo de alias y regla):

# Alias de usuarios
User_Alias ADMINS = admin1, admin2
# Alias de hosts
Host_Alias SERVERS = host1, host2
# Alias de comandos para administrar servicios
Cmnd_Alias SRVMGMT = /bin/systemctl
# Regla: Los usuarios ADMINS pueden ejecutar SRVMGMT en SERVERS
ADMINS SERVERS = (root) SRVMGMT