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.
-relimina también el directorio de inicio.
Para grupos:
- groupadd: Crea un grupo.
-gasigna 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).
- Valores:
- Ejemplo diario a las 2:00 AM:
0 2 * * * /home/sysriser/backup.sh. - Editar:
crontab -e. Ver:crontab -l. - Crontabs de sistema: En
/etc/crontabo/etc/cron.d/. Tienen un campo extra para el usuario.- Ejemplo:
0 3 * * 1 root /usr/sbin/log-cleanup.sh(Lunes 3AM como root).
- Ejemplo:
- 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, akaatq),-m(envía correo al finalizar). - Ejemplo:
at now +5 minutes→date→Ctrl+D. - Eliminar (ID 3):
atrm 3. - Restricciones:
/etc/at.allowy/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.