Administración y Seguridad en Linux: Comandos y Configuración de Sistemas

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 9,54 KB

ISOP - Unidad didáctica 4: Implantación de sistemas operativos

1. Linux: Administración y aseguramiento del sistema

1.1. Permisos

Cada fichero y cada directorio tiene un usuario propietario que, normalmente, es quien lo creó. También tiene un grupo propietario que, por defecto, es el grupo del usuario anterior.

El usuario propietario puede asignar a sus archivos una serie de permisos, con el fin de restringir el acceso a otros usuarios. Para ello, se utiliza el comando chmod que se estudiará más adelante teniendo en cuenta lo siguiente:

Los posibles permisos para archivos son:

  • r: Representa el permiso de lectura.
  • w: Representa el permiso de escritura.
  • x: Representa el permiso de ejecución.

Si asignamos permisos a un directorio, el significado varía:

  • r: Representa el permiso de visualización del contenido del directorio.
  • w: Representa el permiso de creación y eliminación de archivos en el directorio.
  • x: Representa el permiso de acceso al directorio.

Además, para que los permisos r y w sean efectivos, x debe estar activado.

Existen tres categorías de usuarios a los que se debe asignar permisos:

  • El usuario propietario del archivo.
  • El grupo propietario del archivo.
  • El resto de usuarios.

Cuando se ejecuta el comando ls -l aparece la siguiente información:

  • El primer carácter indica el tipo de fichero.
  • Los siguientes tres caracteres establecen los permisos para el usuario propietario (r, w, x).
  • Los siguientes tres caracteres indican los permisos para el grupo propietario.
  • Los siguientes tres caracteres señalan los permisos para el resto de usuarios.
  • Si en alguna de esas posiciones aparece un guion (-), significa que no se ha establecido el permiso correspondiente.

Ejemplo: Si se observa un directorio cuyo usuario propietario tiene todos los permisos, el grupo solo tiene lectura y acceso y, finalmente, el resto de usuarios no tiene ningún permiso, se vería como drwxr-x---.

Es posible establecer los permisos de forma más compacta mediante valores numéricos:

  • r: 4
  • w: 2
  • x: 1

Ejemplos de valores combinados:

  • rwx (7): 4+2+1
  • rw- (6): 4+2
  • r-x (5): 4+1
  • r-- (4): 4

1.1.1. Comandos para la gestión de permisos

chmod

Sintaxis: chmod permisos fichero | directorio

Descripción: Establece permisos para ficheros y directorios. Esta tarea solo la pueden llevar a cabo el propietario del archivo y el superusuario. Los permisos se pueden establecer en formato octal o simbólico. Se usa + para añadir, - para quitar y = para establecer exactamente. Se utiliza u (usuario), g (grupo), o (otros) y a (todos).

Opciones: -R aplica los cambios de forma recursiva a directorios y su contenido.

chown

Sintaxis: chown usuario[:grupo] fichero | directorio

Descripción: Establece el usuario propietario de un archivo y, opcionalmente, también el grupo. Solo el usuario root tiene permiso para hacerlo.

chgrp

Sintaxis: chgrp nuevo_grupo fichero | directorio

Descripción: Cambia el grupo propietario de un archivo o directorio.

umask

Sintaxis: umask [máscara]

Descripción: Muestra o establece la máscara que se aplicará para obtener los permisos por defecto al crear archivos y directorios. El sistema realiza una operación AND entre el valor base (666 para ficheros, 777 para directorios) y el complementario de la máscara.

1.2. Ejecución automática de ficheros

En Linux, al ser un sistema multiusuario, existen ficheros de configuración comunes y otros propios de cada usuario. Pasos en un inicio de sesión en consola:

  1. Introducción de usuario y contraseña.
  2. Validación del sistema.
  3. Asignación de variables de entorno (USER, UID, GID).
  4. Ejecución de la shell de inicio: primero /etc/profile, luego el primero que encuentre entre ~/.bash_profile, ~/.bash_login o ~/.profile.
  5. El fichero ~/.bashrc se ejecuta en cualquier shell que no sea de inicio.
  6. Al cerrar sesión, se ejecuta ~/.bash_logout.

El directorio /etc/skel contiene los ficheros base que se copian al home de un nuevo usuario al ser creado.

1.3. Administración de usuarios

Cada usuario tiene un UID (User Identifier) único y pertenece a un GID (Group Identifier). La configuración se almacena en:

  • /etc/passwd: Datos básicos (login, UID, GID, home, shell).
  • /etc/shadow: Contraseñas encriptadas y políticas de expiración.
  • /etc/group: Definición de grupos y sus miembros.
  • /etc/gshadow: Contraseñas de grupo.

1.3.1. Comandos de usuarios y grupos

  • useradd: Crea un nuevo usuario.
  • passwd: Cambia la contraseña.
  • userdel: Elimina un usuario (-r para borrar su home).
  • usermod: Modifica atributos de un usuario existente.
  • groupadd / groupdel / groupmod: Gestión de grupos.
  • id / groups: Muestra información de identidad del usuario.

1.4. Administración de procesos

Cada proceso tiene un PID (Process Identifier). Pueden ejecutarse en:

  • Primer plano (foreground).
  • Segundo plano (background): Añadiendo & al final del comando.

Los procesos se organizan jerárquicamente. El proceso padre inicial es systemd (o init). Los daemons (demonios) son procesos que se ejecutan permanentemente en segundo plano.

1.4.1. Comandos de procesos

  • jobs: Lista procesos en segundo plano.
  • fg / bg: Pasa procesos a primer o segundo plano.
  • top: Monitorización en tiempo real.
  • ps: Instantánea de los procesos actuales (ps -aux).
  • kill: Finaliza un proceso por su PID (kill -9 para forzar).
  • xkill: Finaliza aplicaciones gráficas mediante el cursor.

1.5. Configuración de red

La nomenclatura moderna de interfaces suele ser del tipo enp0s3 o wlp10s0 para evitar cambios tras reinicios.

1.5.1. Comandos y ficheros de red

  • ifconfig: Configuración de interfaces (IP, máscara, activar/desactivar).
  • route: Gestión de la tabla de enrutamiento y puerta de enlace.
  • /etc/resolv.conf: Configuración de servidores DNS.
  • Netplan (Ubuntu): Configuración mediante ficheros YAML en /etc/netplan/.

1.5.2. NFS (Network File System)

Permite compartir directorios en red. Se configura en el servidor mediante el fichero /etc/exports y se monta en el cliente con el comando mount.

1.6. Utilidades

  • lynx: Navegador web en modo texto.
  • write / talk: Comunicación entre usuarios del sistema.
  • tar: Empaquetado de archivos (-c crear, -x extraer, -z comprimir con gzip).
  • gzip / zcat: Compresión de archivos y visualización de contenido comprimido.
  • gcc: Compilador de lenguaje C.

1.7. Procesos destacados

1.7.1. Cron

Demonio para programar tareas. Se gestiona con crontab -e. El formato es: Minuto Hora Día Mes Día_Semana Tarea.

1.7.2. Systemd / Init

Primer proceso del sistema (PID 1). Gestiona los niveles de ejecución (runlevels):

  • 0: Apagado.
  • 1: Monousuario.
  • 3: Multiusuario modo texto con red.
  • 5: Multiusuario modo gráfico.
  • 6: Reinicio.

1.7.3. Inetd y Syslogd

Inetd es el super-servidor que gestiona servicios de red bajo demanda. Syslogd se encarga del registro de eventos (logs) en /var/log, clasificados por subsistema (auth, cron, kern) y prioridad (debug, info, warning, err, crit, emerg).

1.8. El gestor de arranque Grub

El archivo principal es /boot/grub/grub.cfg, pero no debe editarse manualmente. Las modificaciones se realizan en /etc/default/grub y en los scripts de /etc/grub.d/. Para aplicar cambios, se debe ejecutar update-grub2.

Entradas relacionadas: