Tema 7 / 10
LPIC-1 Examen 107

Tareas administrativas

Domina la gestión de usuarios, la automatización de tareas con cron/systemd y la configuración de localización en Linux.

107.1 Administrar cuentas de usuario y grupo

Gestión de usuarios y grupos

Comandos principales para administrar usuarios:

  • useradd: Crea una nueva cuenta. Opciones clave:
    • -d: Directorio de inicio.
    • -m: Crea el directorio de inicio si no existe.
    • -G: Añade a grupos secundarios.
    • -s: Define el shell (ej. /bin/bash).
  • usermod: Modifica una cuenta existente. Opciones clave:
    • -d: Cambia directorio de inicio.
    • -e: Fecha de expiración.
    • -L: Bloquea la cuenta.
    • -U: Desbloquea la cuenta.
  • userdel: Elimina un usuario. -r elimina también el directorio de inicio.

Para grupos:

  • groupadd: Crea un grupo. -g asigna un GID específico.
  • groupmod: Modifica un grupo (nombre o GID).
  • groupdel: Elimina un grupo (no si es grupo primario de un usuario).

Directorio skel y archivo login.defs

  • /etc/skel: Contiene archivos copiados al directorio de inicio de nuevos usuarios (useradd -m). Estandariza configuraciones iniciales.
  • /etc/login.defs: Define parámetros para creación de usuarios/grupos.
    • CREATE_HOME: Habilita creación de home por defecto.
    • MAIL_DIR: Directorio de cola de correo.

Comandos passwd y chage

passwd: Cambia contraseña. Root puede cambiar cualquier contraseña; usuarios regulares solo la propia. Opciones: -d (elimina), -e (fuerza cambio al inicio), -l (bloquea), -S (estado), -u (desbloquea).

chage: Gestiona caducidad de contraseñas. Opciones: -d (último cambio), -l (lista info).

Archivos passwd, group, shadow y gshadow

Archivos en /etc/:

  • /etc/passwd: Legible por todos. 7 campos : separados (nombre, passwd(x), UID, GID, descripción, home, shell). Ej: sysriser:x:1001:1001:Usuario Sysriser:/home/sysriser:/bin/bash.
  • /etc/group: Legible por todos. 4 campos (nombre, passwd(x), GID, miembros). Ej: developers:x:1001:sysriser,user2.
  • /etc/shadow: Solo legible por root. 9 campos, incluye contraseña cifrada. Ej: sysriser:$6$...:18659:0:99999:7:::.
  • /etc/gshadow: Solo legible por root. 4 campos, incluye contraseña cifrada de grupos.

Comando getent

Consulta bases de datos del sistema (usuarios, grupos). Ejemplo: getent passwd sysriser muestra la línea de /etc/passwd para ese usuario.

107.2 Automatizar tareas administrativas

Cron

Cron ejecuta tareas programadas (cron jobs) revisadas cada minuto.

  • Crontabs de usuario: En /var/spool/cron/ (o /var/spool/cron/crontabs/). 6 campos: minuto (0-59), hora (0-23), día mes (1-31), mes (1-12), día semana (0-7), comando.
    • Valores: * (cualquier), , (lista), - (rango), / (intervalos).
  • Ejemplo diario a las 2:00 AM: 0 2 * * * /home/sysriser/backup.sh.
  • Editar: crontab -e. Ver: crontab -l.
  • Crontabs de sistema: En /etc/crontab o /etc/cron.d/. Tienen un campo extra para el usuario.
    • Ejemplo: 0 3 * * 1 root /usr/sbin/log-cleanup.sh (Lunes 3AM como root).
  • Restricciones: /etc/cron.allow (solo listados pueden usar cron) y /etc/cron.deny (listados prohibidos).

Systemd timers

Alternativa a cron, archivos .timer.

Ejemplo (backup.timer para primer lunes del mes a las 5:30 AM):

[Unit]
Description=Run backup service
[Timer]
OnCalendar=Mon *-*-1..7 05:30:00
Persistent=true
[Install]
WantedBy=timers.target
                
  • Activar: sudo systemctl enable backup.timer, sudo systemctl start backup.timer.
  • OnCalendar: DíaSemana Año-Mes-Día Hora:Minuto:Segundo.
  • Ejemplo diario a medianoche: OnCalendar=*-*-* 00:00:00.

at

Programa tareas de ejecución única.

  • Opciones: -c (muestra comandos), -l (lista, aka atq), -m (envía correo al finalizar).
  • Ejemplo: at now +5 minutes → date → Ctrl+D.
  • Eliminar (ID 3): atrm 3.
  • Restricciones: /etc/at.allow y /etc/at.deny.

systemd-run

Programa tareas únicas con unidades transitorias.

  • Ejemplo fecha específica: sudo systemd-run --on-calendar="2019-10-06 11:30" date.
  • Ejemplo relativo: sudo systemd-run --on-active=600 /home/sysriser/script.sh.

107.3 Localización e internacionalización

Zonas horarias

Zonas con misma hora relativa a UTC. Se nombran por ciudades (ej. `America/Sao_Paulo`) o desfases (`Etc/GMT+3`).

  • Configuración:
    • /etc/timezone: Define la zona.
    • /etc/localtime: Enlace simbólico a /usr/share/zoneinfo/. Ej: sudo ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime.
    • TZ: Variable para sesión. Ej: export TZ="Africa/Cairo"; date.
  • Comandos: date (muestra/ajusta hora), timedatectl (configura), tzselect (selección interactiva).

Localización

Configura idioma y formatos (moneda, números) mediante variables de entorno.

  • Variables clave:
    • LANG: Idioma y codificación (ej. es_ES.UTF-8).
    • LC_MESSAGES: Idioma de mensajes.
    • LC_TIME: Formato hora/fecha.
    • LC_ALL: Anula todas las demás variables.
  • Configuración:
    • /etc/locale.conf: Localización del sistema.
    • locale: Muestra configuraciones actuales.
    • localectl: Configura locale (ej. localectl set-locale LANG=es_US.UTF-8).

Conversión de codificación

iconv: Convierte codificaciones de caracteres. Listar codificaciones: iconv -l.