Tema 3 - ADMINISTRACION DE USUARIOS Y GRUPOS

1. Administracion de usuarios y grupos

La administración de un sistema Linux se puede realizar a través de interfaces gráficas, la terminal (permitiendo la flexibilidad de crear Shell scripts) o modificando directamente los ficheros de configuración.

1.1. Ficheros de configuración:

Mensajes:

  • /etc/issue: Mensaje de bienvenida antes de iniciar la sesión (muestra la versión de la distribución).

  • /etc/motd: Mensaje que aparece después de iniciar sesión (solo vía SSH/Telnet).

Configuración Global:

  • /etc/profile: Configuración que se aplica a todos los usuarios, haciendo referencia al intérprete de comandos (es un Shell script ejecutable).

  • /etc/login.defs: Establece valores por defecto para variables y órdenes que afectan a todos los usuarios (ej: posicionar al usuario en su directorio personal al iniciar sesión).

Perfiles de Usuario:

  • .profile: Se guarda en el home de cada usuario para configurar su entorno e inicializar variables.

  • .bashrc: Se usa tradicionalmente para ejecutar scripts o programas de forma automática, se ejecuta después de .profile.

  • .bash_logout: Se procesa al terminar la sesión (ej: borrar ficheros temporales).

1.2. Tipos de Usuarios y sudo:

Tipos:

  • root (administrador, UID 0), posee el identificador de usuario (UID) 0 y el identificador de grupo (GID) 0.

  • Usuarios «normales» (sesión limitada)

  • Usuarios asociados a servicios (no pueden iniciar sesión, se usan para establecer privilegios en un servicio, como apache).

Comando sudo: Permite lanzar una orden con privilegios de root. Sus reglas de acceso, alias y opciones se guardan en el archivo /etc/sudoers. Debe editarse con el comando visudo para evitar conflictos y comprobar la sintaxis.

1.3. Gestión de Usuarios y Grupos

  • Creación/Eliminación de Usuarios: Se usan los comandos adduser o useradd (para crear) y deluser (para eliminar).

  • Ficheros Actualizados al Crear/Eliminar:

    • /etc/passwd: Listado de usuarios, ID, GID, shell.

    • /etc/shadow: Contraseñas encriptadas y datos de caducidad.

    • /etc/group: Grupos dados de alta y sus miembros.

  • Administración de Grupos: Se usa addgroup para crear un grupo y delgroup para eliminarlo.

2. Permisos y Listas de Control de Acceso (ACL)

2.1 Permisos Básicos

Se manipulan con el comando chmod y se especifican para tres entidades:

  • Propietario del archivo/directorio.

  • Grupo propietario.

  • Resto de usuarios (otros)

Permiso

Archivo

Directorio

Lectura (r)

Ver el contenido del archivo.

Ver el nombre de los archivos.

Escritura (w)

Crear, modificar o eliminar el archivo.

Agregar, eliminar y renombrar archivos.

Ejecución (x)

Ejecutar el archivo.

Recorrer su árbol para acceder a subdirectorios (cd).

2.2. Permisos Especiales

  • Bit SUID (4xxx): Asignable a ejecutables. Permite que el proceso adquiera los permisos del propietario del fichero al ser ejecutado (ejemplo: su). Se ve como una s en el permiso de ejecución del propietario.

  • Bit SETGID (2xxx): Hace que el proceso adquiera los privilegios del grupo asignado al fichero. En directorios, los ficheros creados heredarán el grupo del directorio. Se ve como una s en el permiso de ejecución del grupo.

  • Sticky Bit (1xxx): Indicado solo para directorios. Los ficheros almacenados solo pueden ser renombrados o borrados por su propietario, el propietario del directorio o root (ejemplo: /tmp). Se ve como una t o T en el permiso de ejecución de «otros».

2.3. ACL y umask

  • Listas de Control de Acceso (ACL): Permiten especificar permisos a múltiples usuarios y/o grupos que no son el propietario o el grupo principal, superando la limitación de los permisos básicos. Se gestionan con los comandos getfacl (ver) y setfacl (crear/modificar).

  • umask: Establece los permisos por defecto para los nuevos archivos y directorios creados. El valor de umask desactiva permisos (un bit a “1” desactiva un permiso). Un valor común es 022.

  • Cambio de Propiedad: El propietario y el grupo de un archivo/directorio se cambian con chown y chgrp respectivamente.

3. Sistemas de Ficheros (SF)

El sistema de ficheros determina cómo se almacena lógicamente la información en el disco y define características como la estructura de directorios.

3.1. Creación, Chequeo y Reparación

  • Creación: El comando mkfs se usa para crear un SF. Se puede especificar el tipo con la opción -t (por defecto es ext2).

  • Inconsistencias: La causa más común de corrupción es el apagado indebido del equipo.

  • Reparación:* Se utiliza el comando fsck o las órdenes específicas de su familia (e2fsck, fsck.ext3). La partición a chequear no debe estar montada. También se puede usar badblocks para buscar sectores dañados.

  • Superbloque e Inodos: El Superbloque describe el estado del SF. Los Inodos (bloque de información de nodo) almacenan los metadatos del fichero (permisos, propietario, fechas, etc.) y un puntero a los bloques de datos.

4. Montaje y Monitorización

Montaje y Desmontaje

  • Montaje: Para usar cualquier dispositivo, se le debe asignar un punto de montaje (un directorio vacío). Se realiza con el comando mount [-t tipo_sf] dispositivo directorio.

  • Desmontaje: El comando umount desmonta un dispositivo, una acción crucial para dispositivos extraíbles ya que Linux guarda el acceso a los SF en caché.

  • UUID de Particiones: Es un identificador hexadecimal único para cada partición, más robusto que el nombre de dispositivo (/dev/sdXY) porque no cambia si se añaden o quitan discos. Se obtiene con blkid.

  • Montaje Automático: Para montar un SF de forma permanente en cada inicio, se edita el fichero /etc/fstab. Una línea típica incluye: dispositivo o UUID, punto de montaje, tipo de SF, opciones, dump y pass.

5. Monitorización

  • df (disk free): Muestra el espacio libre de los sistemas de ficheros montados.

  • du (disk usage): Muestra el espacio que están utilizando los directorios o archivos.

  • dmesg: Muestra la lista de mensajes del kernel, útil para ver información de arranque o nuevos dispositivos (ej: dmesg | grep -i usb).