Asignar acceso de lectura/escritura a un usuario en un directorio específico en Linux


En un artículo anterior, le mostramos cómo crear un directorio compartido en Linux. Aquí, describiremos cómo otorgar acceso de lectura/escritura a un usuario en un directorio específico en Linux.

Hay dos métodos posibles para hacer esto: el primero es crear grupos de usuarios para administrar los permisos de archivos, como se explica a continuación.

Para el propósito de este tutorial, usaremos la siguiente configuración.

Operating system: CentOS 7
Test directory: /shares/project1/reports 
Test user: tecmint
Filesystem type: Ext4

Asegúrese de que todos los comandos se ejecuten como usuario root o use el comando sudo con privilegios equivalentes.

Comencemos por crear el directorio llamado informes usando el comando mkdir:

# mkdir -p /shares/project1/reports   				

Uso de ACL para otorgar acceso de lectura/escritura al usuario en el directorio

Importante: Para utilizar este método, asegúrese de que su tipo de sistema de archivos Linux (como Ext3 y Ext4, NTFS, BTRFS) admita ACL.

1. Primero, verifique el tipo de sistema de archivos actual en su sistema, y también si el kernel es compatible con ACL de la siguiente manera:

# df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
# grep -i acl /boot/config*

De la captura de pantalla a continuación, el tipo de sistema de archivos es Ext4 y el kernel admite ACL POSIX como lo indica la opción CONFIG_EXT4_FS_POSIX_ACL u003d y.

2. A continuación, compruebe si el sistema de archivos (partición) está montado con la opción ACL o no:

# tune2fs -l /dev/sda1 | grep acl

De la salida anterior, podemos ver que la opción de montaje predeterminada ya tiene soporte para ACL. Si, en caso de que no esté habilitado, puede habilitarlo para la partición en particular (/ dev/sda3 para este caso):

# mount -o remount,acl /
# tune2fs -o acl /dev/sda3

3. Ahora es el momento de asignar un acceso de lectura/escritura a un usuario tecmint a un directorio específico llamado informes ejecutando los siguientes comandos.

# getfacl /shares/project1/reports       		  # Check the default ACL settings for the directory 
# setfacl -m user:tecmint:rw /shares/project1/reports     # Give rw access to user tecmint 
# getfacl /shares/project1/reports    			  # Check new ACL settings for the directory

En la captura de pantalla anterior, el usuario tecmint ahora tiene permisos de lectura/escritura (rw) en el directorio/shares/proyecto1/informes como se ve en la salida del segundo comando getfacl.

Para obtener más información sobre las listas de ACL, consulte nuestras siguientes guías.

  1. Cómo utilizar las ACL (listas de control de acceso) para configurar cuotas de disco para usuarios/grupos
  2. Cómo utilizar las ACL (listas de control de acceso) para montar recursos compartidos de red

Ahora veamos el segundo método para asignar acceso de lectura/escritura a un directorio.

Uso de grupos para otorgar acceso de lectura/escritura al usuario en el directorio

1. Si el usuario ya tiene un grupo de usuarios predeterminado (normalmente con el mismo nombre que el nombre de usuario), simplemente cambie el propietario del grupo del directorio.

# chgrp tecmint /shares/project1/reports

Alternativamente, cree un nuevo grupo para múltiples usuarios (a quienes se les otorgarán permisos de lectura/escritura en un directorio específico), como se indica a continuación. Sin embargo, esto creará un directorio compartido:

# groupadd projects

2. Luego agregue el usuario tecmint al grupo proyectos de la siguiente manera:

# usermod -aG projects tecmint	    # add user to projects
# groups tecmint	            # check users groups

3. Cambie el propietario del grupo del directorio a proyectos:

# chgrp	projects /shares/project1/reports

4. Ahora configure el acceso de lectura/escritura para los miembros del grupo:

# chmod -R 0760 /shares/projects/reports
# ls  -l /shares/projects/	    #check new permissions

¡Eso es! En este tutorial, le mostramos cómo otorgar acceso de lectura/escritura a un usuario en un directorio específico en Linux. Si tiene algún problema, pregunte a través de la sección de comentarios a continuación.