# 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```).