Gestión de Permisos y Usuarios en Linux con ACLs: Configuración y Comandos Esenciales

Enviado por Chuletator online y clasificado en Diseño e Ingeniería

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

Configuración Avanzada de Permisos y Usuarios en Linux con ACLs

Este documento detalla la configuración de una estructura de directorios y la gestión de permisos de acceso mediante Listas de Control de Acceso (ACLs) en un sistema Linux. Se establecerán grupos de usuarios específicos y se asignarán permisos detallados a cada directorio, incluyendo la creación de un superusuario con acceso global.

1. Definición de Grupos y Estructura de Directorios

Se utilizarán los siguientes grupos de usuarios: comercial, oficina, dirección, tienda, almacén y técnico.

En el directorio /home, se creará la siguiente estructura de directorios:

  • /home/info
  • /home/direccion
  • /home/tienda
  • /home/almacen
  • /home/oficina
  • /home/it

2. Requisitos de Permisos por Directorio

Los permisos se configurarán de la siguiente manera, asegurando que otros usuarios no tengan permisos asociados por defecto:

  • /home/info:
    • Lectura para los grupos: comercial, oficina, dirección, tienda, almacén, técnico.
    • Edición para los grupos: dirección y técnico.
  • /home/direccion:
    • Lectura y edición solo para los grupos: dirección y técnico.
  • /home/tienda:
    • Lectura para los grupos: comercial y tienda.
    • Edición para los grupos: dirección, oficina y técnico.
  • /home/almacen:
    • Lectura para los grupos: comercial y tienda.
    • Edición para los grupos: dirección, oficina, técnico y almacén.
  • /home/oficina:
    • Lectura y edición para los grupos: dirección, oficina y técnico.
  • /home/it:
    • Lectura y edición solo para el grupo: técnico.

Adicionalmente, se creará un superusuario llamado Jefe, perteneciente al grupo técnico, con acceso de lectura y escritura a todos los directorios. Se crearán al menos dos usuarios por cada grupo.

3. Implementación de la Configuración

3.1. Creación de Grupos

Primero, creamos los grupos necesarios en el sistema:

sudo groupadd comercial
sudo groupadd oficina
sudo groupadd direccion
sudo groupadd tienda
sudo groupadd almacen
sudo groupadd tecnico

3.2. Creación de Directorios

A continuación, creamos los directorios en /home:

sudo mkdir /home/info
sudo mkdir /home/direccion
sudo mkdir /home/tienda
sudo mkdir /home/almacen
sudo mkdir /home/oficina
sudo mkdir /home/it

3.3. Asignación de Permisos con ACLs

Asignamos los permisos específicos a cada directorio utilizando setfacl:

Permisos para /home/info
sudo setfacl -m g:comercial:r-x /home/info
sudo setfacl -m g:oficina:r-x /home/info
sudo setfacl -m g:direccion:rwx /home/info
sudo setfacl -m g:tienda:r-x /home/info
sudo setfacl -m g:almacen:r-x /home/info
sudo setfacl -m g:tecnico:rwx /home/info
Permisos para /home/direccion
sudo setfacl -m g:direccion:rwx /home/direccion
sudo setfacl -m g:tecnico:rwx /home/direccion
Permisos para /home/tienda
sudo setfacl -m g:comercial:r-x /home/tienda
sudo setfacl -m g:tienda:r-x /home/tienda
sudo setfacl -m g:direccion:rwx /home/tienda
sudo setfacl -m g:oficina:rwx /home/tienda
sudo setfacl -m g:tecnico:rwx /home/tienda
Permisos para /home/almacen
sudo setfacl -m g:comercial:r-x /home/almacen
sudo setfacl -m g:tienda:r-x /home/almacen
sudo setfacl -m g:direccion:rwx /home/almacen
sudo setfacl -m g:oficina:rwx /home/almacen
sudo setfacl -m g:tecnico:rwx /home/almacen
sudo setfacl -m g:almacen:rwx /home/almacen
Permisos para /home/oficina
sudo setfacl -m g:direccion:rwx /home/oficina
sudo setfacl -m g:oficina:rwx /home/oficina
sudo setfacl -m g:tecnico:rwx /home/oficina
Permisos para /home/it
sudo setfacl -m g:tecnico:rwx /home/it

3.4. Creación del Superusuario "Jefe"

Creamos el usuario Jefe y lo añadimos al grupo técnico:

sudo useradd -m -s /bin/bash Jefe
sudo usermod -aG tecnico Jefe

Asignamos permisos de lectura y escritura a Jefe en todos los directorios:

sudo setfacl -m u:Jefe:rwx /home/info
sudo setfacl -m u:Jefe:rwx /home/direccion
sudo setfacl -m u:Jefe:rwx /home/tienda
sudo setfacl -m u:Jefe:rwx /home/almacen
sudo setfacl -m u:Jefe:rwx /home/oficina
sudo setfacl -m u:Jefe:rwx /home/it

3.5. Creación de Usuarios por Grupo

Creamos al menos dos usuarios para cada grupo. A modo de ejemplo, se muestran los comandos para el grupo dirección:

sudo useradd -m -s /bin/bash usuario_direccion1
sudo usermod -aG direccion usuario_direccion1
sudo useradd -m -s /bin/bash usuario_direccion2
sudo usermod -aG direccion usuario_direccion2

Este proceso se repetiría de forma similar para los grupos comercial, oficina, tienda, almacén y técnico.

3.6. Verificación de la Configuración

Para verificar la configuración de directorios y permisos, se pueden utilizar los siguientes comandos:

ls -l /home
getfacl /home/info

Referencia Rápida de Comandos Linux para Administración de Usuarios y Permisos

Esta sección proporciona un resumen de comandos esenciales para la gestión de usuarios, grupos y permisos en sistemas Linux.

1. Comandos de Gestión de Usuarios

  • adduser: Agrega un usuario con una interfaz interactiva (menos común en scripts).
  • useradd: Crea un usuario sin interfaz interactiva (usado frecuentemente en scripts).
    • -m: Crea el directorio personal (/home) del usuario.
  • usermod: Modifica las propiedades de un usuario.
    • -g: Modifica el grupo principal al que pertenece el usuario.
    • -G: Modifica los grupos secundarios del usuario.
    • -aG: Añade el usuario a grupos secundarios sin eliminar los existentes.
  • userdel: Elimina un usuario.
    • -r: Elimina también el directorio personal del usuario.

2. Comandos de Gestión de Grupos

  • groupadd: Añade un nuevo grupo.
    • -f: Evita errores si el grupo ya existe.
  • groupmod: Edita las propiedades de un grupo.
    • -U: Añade usuarios al grupo, sobrescribiendo los existentes.
    • -aU: Añade usuarios al grupo sin sobrescribir los existentes.
    • -n: Cambia el nombre del grupo.
  • groupdel: Elimina un grupo.

3. Comandos de Gestión de Permisos

  • chown: Cambia el propietario y/o el grupo de archivos y directorios.
    • -R: Aplica el cambio de forma recursiva al directorio y su contenido.
  • chmod: Cambia los permisos de archivos y directorios.
    • -R: Aplica el cambio de forma recursiva al directorio y su contenido.
  • umask: Muestra o establece la máscara de creación de archivos por defecto.
  • getfacl: Muestra las Listas de Control de Acceso (ACLs) de archivos y directorios.
  • setfacl: Modifica las Listas de Control de Acceso (ACLs) de archivos y directorios.
    • -m: Modifica las entradas de ACL.
    • -d: Establece las ACLs por defecto para nuevos archivos/directorios.
    • -dm: Modifica y establece las ACLs por defecto.

4. Comandos de Gestión de Cuentas de Usuario (chage)

  • chage: Modifica la información de caducidad de la contraseña y la cuenta.
    • -l: Lista la información de caducidad de la cuenta.
    • -M: Establece el número máximo de días antes de que el usuario deba cambiar su contraseña.
    • -E: Establece la fecha de expiración de la cuenta de usuario.
    • -W: Define el número de días de aviso antes de que la contraseña expire.

5. Archivos de Configuración Importantes

  • /etc/passwd: Almacena información de las cuentas de usuario (sin contraseñas).
  • /etc/group: Almacena información de los grupos de usuario.
  • /etc/shadow: Almacena las contraseñas cifradas de los usuarios.

Entradas relacionadas: