Administración de Usuarios, Permisos y Procesos en Linux — Comandos y Ejercicios Explicados

Solucionario explicado (PDF: Usuarios_y_Grupos_ej1)

1. Crear empleado: useradd -m -s /bin/bash empleado. Explicación: usamos useradd (comando base). El flag -m es obligatorio porque si no, Linux crea el usuario pero NO su carpeta /home/empleado, dejándolo «indigente». El flag -s /bin/bash es vital porque la shell por defecto suele ser /bin/sh (muy antigua/incómoda); bash permite autocompletar y tiene historial. Luego passwd empleado para asignarle clave, ya que nace bloqueado.

2. Ver ficheros: cat /etc/passwd (base de datos de usuarios, legible por todos), cat /etc/group (grupos), cat /etc/shadow (claves cifradas, solo root puede verlo).

3. Info: id empleado muestra UID (numérico), GID (grupo principal) y grupos secundarios.

4. Sesión: su - empleado. El guion - es crucial: carga el entorno (variables, PATH) del usuario como si acabara de iniciar sesión. Sin el guion, heredas la configuración de la sesión anterior. Redirecciones: mount > fsmontados (el > crea archivo nuevo con la lista de discos montados). cat /etc/fstab >> fsmontados (el >> añade al final sin borrar lo anterior). ls -li: la -i muestra el inodo (DNI único del archivo en disco).

5-6. Grupos: groupadd oficina crea el grupo. usermod -aG oficina empleado mete al usuario. La -a (append) es crítica: si usas solo -G, el usuario es expulsado de todos sus otros grupos secundarios.

7. Comercial: useradd -m -G oficina comercial. Aquí usamos -G directo al crear porque el usuario es nuevo y no tiene grupos previos que perder.

8. Borrar: userdel comercial. Cuidado: al no usar -r, el usuario desaparece de /etc/passwd pero su carpeta /home/comercial se queda en el disco llena de archivos «huérfanos» (su dueño será un número UID sin nombre).

10-12. Juan / Ana: grep -E "Juan|Ana" /etc/passwd > info. Usamos expresiones regulares (-E) para buscar dos nombres a la vez y volcarlos a un archivo. chmod g+w info: damos permiso de escritura (w) al grupo (g), así cualquiera en el grupo directores puede editarlo.

13. Dueño: chown Juan info. Juan pasa a ser el propietario.

14. Mover: mv info temp/. Al mover un archivo, este conserva sus permisos y dueño originales.

15. Permisos octales: rw-rw-r-- es 4+2 (6), 4+2 (6), 4 (4) = 664. rw-r----- es 6, 4, 0 = 640. rw-rw-rw- es 666.

16. Directorio sin X: chmod 644 temp. Al quitar la x (1) a un directorio, le quitas la capacidad de «entrar» (cd) o «atravesar». Nadie podrá acceder a los inodos de los archivos de dentro, aunque tenga permiso de lectura sobre ellos.

Solucionario explicado (PDF: EXAME 1Control)

1. Raúl (1 línea): useradd -m -d /home/raul -u 1211 -s /bin/sh -g psuarez -G curso1 raul. Por qué: -d fuerza la ruta del home. -u fija el UID manual. -g fija el grupo PRIMARIO (debe existir). -G fija los SECUNDARIOS.

2. Rafa: Similar al anterior pero con UID 1113 y shell /bin/bash.

3. Shell: usermod -s /bin/bash raul. Cambia el intérprete de comandos post-creación.

4. Pass: passwd rafa. Pide la contraseña de forma interactiva.

5. Pass SHA-512: usermod -p $(openssl passwd -6 "12345") raul. Detalle: usermod -p espera la contraseña YA encriptada. Si pones «12345» tal cual, el sistema cree que es un hash y no te deja entrar. El comando openssl passwd -6 genera el hash SHA-512 (identificado por $6$) que necesita Linux.

6. Comentario: usermod -c. Cambia el campo GECOS (información adicional).

7. GID: groupmod -g 1510 curso1. Cambia el número identificador del grupo.

8. Bloqueo: usermod -L usuario (Lock). Pone un ! en /etc/shadow, invalidando la contraseña. -U lo quita (Unlock).

9. Renombrar: groupmod -n dam1 curso1. Cambia el nombre «curso1» a «dam1».

10. Primario: usermod -g dam1 raul. Cambia el grupo principal (el que aparece en el 4º campo de /etc/passwd).

11. Grupos masivos: gpasswd -a usuario grupo o usermod -aG grupo usuario.

17. Umask de Rafa: Quiere rwxrwxr-x (775). La base de directorios es 777. Resta: 777 – 775 = 002. Comando: umask 002. Esto hará que los directorios nuevos de Rafa tengan 775.

18. Expirar: chage -E 2026-08-30 usuario. -E (Expire) fija una fecha absoluta donde la cuenta muere.

20. Colaboración (SGID): Si Rafa crea la carpeta SI_APUNTES, es del grupo de Rafa. Si Raúl escribe dentro, el archivo será del grupo de Raúl. Para que colaboren, la carpeta debe tener SGID (chmod g+s o notación octal 2xxx). Así, todo lo que se cree dentro heredará el grupo de la carpeta (dam1), no del usuario.

21. Permisos fichero: 754 = Dueño(7/rwx), Grupo(5/r-x), Otros(4/r–).

23. Sticky Bit: chmod +t SI_APUNTES. En carpetas compartidas donde varios escriben, el riesgo es que uno borre lo del otro. El bit Sticky (t) hace que SOLO el dueño del archivo pueda borrarlo (o root).

24. Sudo: usermod -aG sudo raul. Añadir al grupo sudo otorga permisos de root (si está configurado en /etc/sudoers).

Solucionario explicado (PDF: Gestion_procesos)

1. PID: Identificador numérico único que el kernel asigna a cada proceso.

2. ps -a vs -x: -a muestra procesos de todos los usuarios pero asociados a una terminal. -x muestra los procesos sin terminal (demonios, servicios de fondo).

3. Nice: Nivel de «amabilidad». Va de -20 (el más «egoísta», máxima prioridad) a 19 (el más amable, mínima prioridad).

4. Find: find / -name "*.jpg" busca en todo el disco. 2>/dev/null se suele añadir para ocultar errores de permiso.

5. Baja prioridad: nice -n 19 comando. Lanza el comando siendo «muy amable» con el resto para no saturar la CPU.

6. Renice / Kill: renice -n -20 -p PID. Cambia la prioridad de un proceso que YA está corriendo (solo root puede bajar a negativos). kill -15 PID (SIGTERM) pide cierre ordenado.

7. Vi: nice -n -20 vi. Editor de texto con prioridad máxima (peligroso si se cuelga).

8. Árbol: pstree muestra quién es el padre (PPID) de cada proceso.

9. Top: Herramienta interactiva. Tecla r para renice, tecla k para matar.

10. Background (&): El & al final libera la terminal. jobs lista estas tareas.

13-17. Control: Ctrl+Z envía señal SIGSTOP (pausa el proceso). bg lo reanuda en segundo plano (background). fg lo trae al frente (foreground).

18. PID vs Job: El Job ID (ej.: [1]) es un número simple asignado por tu terminal actual. El PID (ej.: 4523) es global del sistema.

Solucionario explicado (PDF: TAREAS Y USUARIOS)

1. At: Programación única. at 12:00 abre un prompt. Escribes comandos. Ctrl+D guarda y sale.

2. Cron: 0 4 * * 1: minuto 0, hora 4, cualquier día, cualquier mes, día de la semana 1 (lunes).

3. Wall: Envía un mensaje de broadcast a todas las terminales abiertas (/dev/tty*).

4. Backup Tar: tar -czf archivo.tgz carpeta. -c crear, -z comprimir (gzip), -f archivo. En cron: 30 22 * * *.

5. Fecha consola: */30 * * * * date > /dev/tty1. Redirigimos a /dev/tty1 para que salga en la pantalla física 1.

6. Apagado: shutdown -h now apaga. Se programan wall previos para avisar a los usuarios.

8. Gráficos en Cron: El error clásico: cron no tiene pantalla. Hay que poner export DISPLAY=:0 delante del comando (ej.: firefox) para que sepa que debe abrirse en el monitor principal.

9. Días pares: Cron no tiene sintaxis directa «días pares». */2 significa «cada 2 días»; si el mes tiene 31 días, se ejecutará el 1, 3, 5… (impares). Para pares reales se usa un script con condición: [ $(( $(date +%d) % 2 )) -eq 0 ] && comando.

10. Reboot: @reboot es una palabra clave especial de cron para ejecutar algo solo al encender el PC.

Solucionario explicado (PDF: REPASO/ACTIVIDADES 2)

Permisos carpeta Proyecto: chmod 770. Dueño(7) y Grupo(7) leen/escriben/entran. Otros(0) no tienen acceso. Esto crea un buzón privado para el grupo.

Passwd -d: Borra la contraseña. Permite login sin password (si PAM lo permite) o deshabilita acceso remoto. Es inseguro.

SHA-256: Similar al SHA-512 pero usamos openssl passwd -5.

Máscaras especiales: Ejercicio «propietario solo lectura (400) y nadie más nada». Base archivo 666. Deseamos 400. Resta: 666 – 400 = 266. umask 266.

SetUID (SUID) en ficheros: chmod 4755. El ejecutable correrá con los poderes del dueño del archivo (ej.: root), no del usuario que lo lanza.

Actividad 2: useradd -k /etc/skel fuerza el uso de la plantilla base. chmod g-r archivo: notación simbólica para quitar (-) lectura (r) al grupo (g). chmod +t dir: activa el Sticky bit, impidiendo borrados accidentales entre usuarios en carpetas compartidas. chmod g+s dir: activa SGID, forzando herencia de grupo para colaboración.

Gestión de identidades y usuarios (comandos y explicación)

useradd: Herramienta de bajo nivel para crear usuarios. Flags: -m (crea /home, vital para sesiones gráficas), -d /ruta (define ruta de home específica), -s /bin/bash (define intérprete de comandos; usar /usr/sbin/nologin o /bin/false para cuentas de sistema sin acceso), -u UID (fija ID numérico), -g GID (grupo primario), -G g1,g2 (grupos secundarios, separados por comas sin espacios), -c "Dato" (comentario/GECOS), -k /skel_alt (usa otra plantilla de configuración), -p HASH (asigna clave ya encriptada; no acepta texto plano), -D (muestra o edita valores por defecto en /etc/default/useradd).

adduser: Script interactivo (wrapper de useradd en Debian/Ubuntu) que automatiza la creación de /home, copia /etc/skel y pide contraseña y datos GECOS paso a paso de forma amigable.

usermod: Modifica cuentas existentes. Flags: -aG grupo (añade a grupo secundario sin borrar los anteriores; la a de append es crítica), -l nuevo (cambia el nombre de login), -L (Lock: bloquea la clave poniendo un ! en /etc/shadow), -U (Unlock: quita el bloqueo), -d -m (cambia la ruta del home y mueve los archivos físicos a la nueva ubicación), -s /shell (cambia la shell post-creación), -c "comentario" (cambia info GECOS), -g GID (cambia grupo primario), -u UID (cambia el ID numérico).

passwd: Gestiona contraseñas. Flags: -l (bloquea cuenta), -u (desbloquea), -e (fuerza caducidad inmediata; el usuario debe cambiar clave en el próximo inicio), -d (elimina la clave permitiendo acceso libre o deshabilitando acceso remoto según configuración), -S (muestra estado de la clave).

chage: Controla el envejecimiento (aging) de la cuenta en /etc/shadow. Flags: -l (lista toda la info de caducidad), -E YYYY-MM-DD (fecha absoluta en la que la cuenta se bloquea definitivamente), -M (días máximos de validez de la contraseña), -m (días mínimos entre cambios para evitar trampas), -W (días de aviso previo), -I (días de inactividad permitidos tras expirar la clave antes de bloquear la cuenta).

userdel: Elimina usuarios. Flag -r es esencial para borrar también su directorio personal y buzón de correo; sin -r los archivos quedan en el disco con un UID huérfano.

vipw / vigr: Edita /etc/passwd o /etc/group de forma segura aplicando un bloqueo al archivo para evitar corrupción si otro proceso intenta escribir.

groupadd: Crea grupos; flag -g GID para fijar ID. groupmod: Modifica grupos; -n para renombrar y -g para cambiar ID. groupdel: Borra grupos (solo si no es primario de nadie).

gpasswd: Administra miembros de grupos. -a user (añadir), -d user (quitar), -A user (hacer administrador del grupo), -R (restringir acceso al grupo).

deluser user grupo: Alternativa sencilla para quitar un usuario de un grupo secundario.

Comandos de consulta: id user (muestra UID, GID y todos los grupos), whoami (dice el usuario actual), groups user (lista grupos del usuario), su - user (cambia a otro usuario cargando su entorno completo; el - es vital para el PATH y HOME), newgrp grupo (cambia el grupo primario de la sesión actual si el usuario pertenece a él), getent passwd|group (consulta las bases de datos de usuarios/grupos incluyendo servicios externos como LDAP), chfn (cambia datos de contacto: nombre, oficina), chsh (cambia la shell del usuario interactivamente), chpasswd (permite cambiar claves de forma masiva pasando usuario:clave por tubería).

Sistema de archivos, permisos y comunicación

chmod: Cambia permisos de acceso.

Modo octal: Suma de bits: 4 (lectura/R), 2 (escritura/W), 1 (ejecución/X). Ej.: 755 (rwxr-xr-x).

Modo simbólico: u (dueño), g (grupo), o (otros), a (todos) con operadores + (añadir), - (quitar), = (establecer exacto).

Permisos especiales (SUID/SGID/Sticky):

  • SUID (4xxx / u+s): el ejecutable corre con los privilegios del dueño del archivo (ej.: passwd corre como root).
  • SGID (2xxx / g+s): en archivos corre con privilegios del grupo; en directorios hace que los archivos nuevos hereden el grupo de la carpeta (vital para compartir trabajos).
  • Sticky bit (1xxx / +t): en carpetas compartidas (ej.: /tmp), impide que un usuario borre archivos de otros; solo el dueño o root pueden borrar.

chown: Cambia propietario y grupo (dueño:grupo). Flag -R aplica cambios recursivamente.

chgrp: Cambia solo el grupo propietario.

umask: Define qué permisos se quitan al crear archivos. Base archivos: 666, base directorios: 777. Cálculo: máximo – umask = permiso final. Ej.: umask 022 resulta en 644 para archivos y 755 para carpetas.

setfacl: Permisos avanzados. -m u:usuario:rwx da permisos específicos a un usuario que no es dueño ni grupo.

Comandos de disco y utilidades: mkdir -p (crea carpetas y sus padres si no existen), touch (crea archivo vacío), mv (mueve o renombra, mantiene dueño), cp (copia), ls -li (muestra el inodo), tree -L 1 (muestra jerarquía visual), mount (ve discos conectados), df -h (ve espacio libre en formato humano), cat /etc/fstab (configuración de montajes al inicio).

Comunicación: who y w (ven usuarios conectados y qué hacen), write usuario (mensaje privado por terminal), wall "mensaje" (mensaje a todas las terminales), mesg n/y (permite o bloquea recibir mensajes).

Procesos, prioridades y control

ps: Captura de procesos. Flags: aux (BSD: muestra todos los usuarios, uso de CPU/MEM y procesos sin terminal), -ef (SysV: muestra jerarquía completa con proceso padre PPID), -U usuario (procesos de un usuario concreto).

pstree -p: Visualiza procesos en árbol con sus PIDs.

top: Monitor en tiempo real; interactivo: k (matar), r (cambiar prioridad/renice), q (salir).

kill -señal PID: Envía señales. -15 (SIGTERM: cierre ordenado, default), -9 (SIGKILL: terminación forzada inmediata), -1 (SIGHUP: recargar configuración de servicios), -19 (SIGSTOP: pausar), -18 (SIGCONT: reanudar).

killall -i nombre: Mata todos los procesos de un programa pidiendo confirmación.

Nice / Renice: Prioridad de CPU (-20 máxima a 19 mínima). nice -n valor comando lanza un proceso con prioridad baja (ej.: 19). renice -n valor -p PID cambia la prioridad a un proceso ya vivo (solo root puede bajar a valores negativos).

Jobs (control de tareas): comando & (lanza en segundo plano/background), jobs -l (lista tareas de la sesión con su Job ID y PID), Ctrl+Z (detiene el proceso actual y lo manda a la cola de jobs), bg %n (reanuда el job n en segundo plano), fg %n (trae el job n al primer plano), nohup comando & (permite que el proceso siga corriendo aunque cierres la terminal), sleep N (crea una espera de N segundos).

Automatización y tareas temporales

at [tiempo]: Programa una tarea única para el futuro (ej.: at 21:00, at now + 5 minutes). Los comandos se escriben tras el prompt y se guardan con Ctrl+D. atq o at -l lista tareas pendientes, atrm ID o at -r borra tarea de la cola.

batch: Igual que at pero solo ejecuta cuando la carga del sistema baja de 1.5 (ideal para tareas pesadas).

crontab: Gestiona tareas recurrentes. -e (editar tabla), -l (listar), -r (borrar). Formato (5 campos): minuto hora dia_mes mes dia_semana comando. Símbolos: * (siempre), */N (cada N unidades), , (lista), - (rango). Atajos: @reboot (ejecutar al iniciar el sistema), @daily (medianoche), @hourly. Ejemplos: 0 23 * * * (a las 23:00 cada día), 0 4 * * 1 (lunes a las 4:00 AM para actualizaciones), */30 * * * * (cada 30 min).

Nota entorno gráfico: Para ejecutar apps visuales (Firefox/Nautilus) desde cron hay que usar export DISPLAY=:0 && comando.

tar -czf archivo.tgz carpeta: crea copia comprimida (-c create, -z gzip, -f file). shutdown -h now (apagar), shutdown -r now (reiniciar). netstat -t (ve conexiones de red TCP activas), wget url & (descarga archivo en segundo plano).

Solucionario maestro de ejercicios (paso a paso)

(Fundamentos):

  • 1. Crear empleado: useradd -m -s /bin/bash empleado + passwd empleado. Usamos -m para que tenga carpeta personal y -s /bin/bash para que la terminal sea útil; passwd es necesario porque el usuario nace bloqueado.
  • 3. Info: id empleado muestra su UID/GID.
  • 4. Sesión: su - empleado. El guion carga su PATH y HOME; pwd ve directorio; who ve conectados. Redirección: mount > fsmontados (crea); cat /etc/fstab >> fsmontados (añade al final). ls -li ve el inodo.
  • 5-7. Grupos: groupadd oficina; usermod -aG oficina empleado (añadimos sin borrar los suyos). useradd -m -G oficina comercial (creamos ya dentro del grupo).
  • 8. Borrar: userdel comercial (sin -r deja la carpeta home).
  • 10-12. Juan/Ana: groupadd directores; useradd -m -G directores Juan (y Ana). grep -E "Juan|Ana" /etc/passwd > info (extrae sus líneas). chgrp directores info y chmod g+w info para que ambos editen.
  • 13. Dueño: chown Juan info. Juan puede editarlo pero solo borrarlo si tiene permiso en la carpeta /home.
  • 15. Permisos octales: rw-rw-r--=664, rw-r-----=640, rw-rw-rw-=666.
  • 16. Carpeta sin X: chmod 644 carpeta. Nadie puede entrar (cd) ni leer archivos de dentro porque falta la «llave» (x).

(Examen):

  • 1. Raúl: useradd -m -d /home/raul -u 1211 -s /bin/sh -g psuarez -G curso1 raul (fuerza home, UID y grupos en una línea).
  • 5. Pass SHA-512: usermod -p $(openssl passwd -6 "12345") raul. useradd -p espera el hash, no el texto plano; el -6 de openssl genera el hash SHA-512 que usa Linux.
  • 17. Umask Rafa: Deseo 775 (rwxrwxr-x). Máximo dir 777. 777-775=002. Comando: umask 002.
  • 20-23. Colaboración SI_APUNTES: mkdir SI_APUNTES; chgrp dam1 SI_APUNTES; chmod 2775 SI_APUNTES. El 2 (SGID) fuerza que lo que cree Raúl sea del grupo dam1. chmod +t SI_APUNTES añade el Sticky Bit para que Raúl no borre archivos de Rafa.
  • (Procesos):
  • 4-5. Find JPG baja prio: nice -n 19 find / -name "*.jpg".
  • 6. Gestión en vivo: ps aux | grep find (saca PID); renice -n -20 -p PID (máxima prioridad, solo root); kill -15 PID (cierre amable).
  • 13-17. Control suspensión: sleep 1000 -> Ctrl+Z (pausa) -> bg %1 (sigue en fondo) -> fg %1 (vuelve al frente) -> Ctrl+C (mata).
  • ISO Background: wget [url] & -> kill -STOP PID (para sin cerrar) -> renice -n -20 -p PID -> kill -CONT PID (sigue a tope) -> kill -9 PID (muerte súbita).
  • (Tareas):
  • Informe 12h: at 12:00 -> who > informe; ps -a >> informe.
  • Backup: 30 22 * * * tar -czf /back.tgz /home/u/Docs.
  • Días pares: cron no hace «pares» puros; usar script con if [ $(( $(date +%d) % 2 )) -eq 0 ].
  • Act2: useradd -k /etc/skel (fuerza plantilla); chage -m 10 -M 20 user2 (fuerza cambio entre día 10 y 20). chmod g-r file (simbólico).

Teoría

Arquitectura multiusuario y sistema de identidades

Linux es un sistema multiusuario y multitarea, lo que significa que varios usuarios pueden trabajar simultáneamente ejecutando múltiples tareas sin interferir entre sí. El sistema mantiene una supervisión constante y utiliza una base de datos de identidades para acreditar (verificar) quién intenta acceder. Cada objeto del sistema tiene dos atributos de propiedad vitales: un Usuario Dueño y un Grupo Propietario. Los procesos en ejecución también pertenecen al usuario que los lanzó, heredando sus privilegios.

Tipos de usuarios:

  1. Root (superusuario): posee el UID 0. Tiene privilegios totales e irrestrictos para gestionar servicios, usuarios y hardware. Su existencia es imprescindible para la administración.
  2. Usuarios regulares: son individuos reales con privilegios limitados. En sistemas modernos como Ubuntu, sus UIDs comienzan a partir del 1000.
  3. Usuarios de sistema (virtuales): cuentas preinstaladas (ej.: bin, mail, ftp) vinculadas a tareas específicas del SO. No tienen login interactivo y sus UIDs suelen estar en el rango 1-999.

Gestión de grupos: son conjuntos de usuarios creados para administrar permisos de forma global. Cada usuario tiene un grupo primario (asignado al crear la cuenta, cuyos privilegios se aplican a los archivos que cree el usuario) y puede pertenecer a múltiples grupos secundarios para acceder a recursos compartidos.

Bases de datos de configuración y seguridad

La información reside en archivos de texto plano en /etc.

Archivo /etc/passwd: directorio público de usuarios (permisos 644). Formato de 7 campos: login:password:UID:GID:GECOS:home:shell. El campo password contiene una x indicando que el hash real está en el archivo shadow. El UID 0 está reservado para root. GECOS guarda metadatos (nombre, oficina). El shell define el intérprete de comandos; si es /bin/false o /usr/sbin/nologin, el usuario no tiene acceso a consola.

Archivo /etc/shadow: almacena contraseñas cifradas y políticas de caducidad. Es accesible solo por root. Formato: login:hash:último_cambio:mín_días:máx_días:aviso:inactividad:expiración:reservado. Las fechas se cuentan en días desde el 1 de enero de 1970 (Epoch). El hash sigue el formato $id$salt$hash, donde $1$ es MD5, $5$ es SHA-256 y $6$ es SHA-512 (estándar actual).

Archivo /etc/group: define los grupos. Formato: nombre:password:GID:lista_usuarios_secundarios.

Archivo /etc/skel: directorio esqueleto que contiene archivos de configuración (.bashrc, .profile) que se copian automáticamente al home de cada usuario nuevo.

Acreditación: Linux usa cifrado unidireccional. La contraseña escrita se cifra y se compara con la almacenada; si coinciden, se otorga el acceso. El sistema no guarda la clave original, solo el resultado matemático.

Modelo de permisos DAC y seguridad de archivos

Cada archivo y directorio tiene bits de permiso para tres clases: Usuario (u), Grupo (g) y Otros (o). Bits básicos (r, w, x): en ficheros, r permite leer contenido, w alterarlo (no borrarlo necesariamente) y x ejecutarlo como programa. En directorios, r permite listar nombres (ls), w permite crear o borrar ficheros dentro (independiente de los permisos del fichero en sí) y x permite entrar (cd) y atravesar la ruta para acceder a inodos.

Cálculo octal: suma de bits: r=4, w=2, x=1. Ejemplo: 755 es rwxr-xr-x (dueño todo, grupo/otros leen y entran).

Permisos especiales:

  • SUID (Set User ID, valor 4): marcado como s en el dueño (rws). Permite ejecutar un archivo con los privilegios del propietario del archivo. Clave para el comando passwd (corre como root para editar /etc/shadow).
  • SGID (Set Group ID, valor 2): en archivos corre con el grupo del archivo. En directorios, fuerza a que todo lo creado dentro herede el grupo de la carpeta (vital para colaboración).
  • Sticky Bit (valor 1): marcado como t en otros (rwt). En carpetas públicas (ej.: /tmp), impide que un usuario borre o renombre archivos de otros; solo el dueño del archivo puede hacerlo.

Máscara umask: filtro que resta permisos al crear. Base ficheros 666, base directorios 777. Si umask es 022, los ficheros nacen 644 y carpetas 755.

Administración de procesos y recursos

Un proceso es un programa en ejecución gestionado por el kernel. Identificación: cada proceso tiene un PID único. Todo proceso (hijo) es creado por otro (padre o PPID). El primer proceso es init (o systemd) con PID 1.

Estados: R (Ejecutándose), S (Durmiendo/espera de evento), T (Detenido/suspendido) y Z (Zombie: terminado pero no recogido por el padre).

Monitorización: ps aux (estilo BSD, muestra todos los procesos del sistema con %CPU y %MEM) y ps -ef (estilo System V, muestra la jerarquía y PPID). top es el monitor dinámico en tiempo real.

Prioridades (Nice Number): rango de -20 (máxima prioridad) a 19 (mínima). El valor por defecto es 0. Los usuarios normales solo pueden subir el valor (bajar su prioridad); solo root puede asignar valores negativos.

Señales (signals): comunicación con procesos. 1 (SIGHUP): recargar configuración. 2 (SIGINT): interrupción (Ctrl+C). 9 (SIGKILL): terminación inmediata forzosa (no se puede ignorar). 15 (SIGTERM): terminación controlada (default). 18 (SIGCONT): reanudar. 19 (SIGSTOP): detener/pausar (Ctrl+Z).

Control de trabajos (jobs): un comando con & corre en segundo plano (background). jobs los lista. fg los trae al frente y bg reanuda procesos detenidos en el fondo. nohup permite que un proceso sobreviva al cierre de la terminal.

Automatización de tareas y delegación

Sudo: permite a un usuario normal ejecutar comandos como root sin saber la clave de root (usando la suya propia). Se configura en /etc/sudoers (usar visudo) o añadiendo al usuario al grupo sudo (Debian/Ubuntu) o wheel (RHEL).

Programación única (at): ejecuta una vez en el futuro. Requiere el servicio atd. atq lista la cola y atrm borra tareas.

batch: similar pero solo ejecuta si la carga del sistema es inferior a 1.5.

Programación periódica (cron): demonio que revisa tareas cada minuto. Las tablas de usuario se editan con crontab -e. Formato de 5 campos: minuto hora día_mes mes día_semana. Admite rangos (1-5), listas (1,3), pasos (*/10) y atajos como @reboot, @daily o @hourly.

Entorno gráfico en cron: al no tener terminal asociada, para lanzar apps gráficas se debe anteponer la variable DISPLAY=":0".

Referencia maestra de comandos y variantes

Principales comandos: useradd -m (crear home), -d (especificar ruta home), -s (shell), -u (UID), -g (primario), -G (secundarios), -p (pass cifrada), -k (esqueleto alternativo). usermod -aG (añadir grupo sin borrar previos), -L (bloquear), -U (desbloquear), -l (renombrar login), -d -m (mover home). userdel -r (borrar todo). passwd -e (forzar cambio), -d (quitar pass), -l (bloquear). chage -E (fecha expiración cuenta), -M (máx días pass), -W (aviso). groupadd -g (crear con GID). groupmod -n (renombrar), -g (cambiar GID). gpasswd -a (añadir user a grupo), -d (quitar). id (ver UID/GID). who/w (quién está conectado). su - (cambio total de usuario). chmod (octal o simbólico), chown (propietario:grupo), chgrp (grupo). ls -li (inodos), tree (árbol directorios), mount (discos), df -h (espacio). setfacl (ACLs avanzadas). ps aux / ps -ef (procesos). kill -9 (muerte súbita), nice (lanzar con prio), renice (cambiar prio en vivo). at (una vez), crontab (recurrente). wall (mensaje a todos), write (mensaje privado). tar -czf (crear backup comprimido). netstat -t (conexiones red). wget (descarga en fondo). vipw/vigr (edición segura de passwd/group). chfn (editar GECOS), chsh (cambiar shell interactivo).

Documento corregido y organizado con el objetivo de mejorar legibilidad, coherencia y uso de etiquetas semánticas para SEO sobre temas de administración de sistemas Linux: usuarios, grupos, permisos, procesos y automatización de tareas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.