Búsqueda de sitios web

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 usar ACL (listas de control de acceso) y el segundo es crear grupos de usuarios para administrar los permisos de archivos, como se explica a continuación.

Para los fines de este tutorial, utilizaremos 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 utilice el comando sudo con privilegios equivalentes.

Comencemos creando el directorio llamado reports 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 admite ACL de la siguiente manera:

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

En la captura de pantalla siguiente, 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=y.

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

tune2fs -l /dev/sda1 | grep acl

En el resultado anterior, podemos ver que la opción de montaje predeterminada ya admite ACL. Si 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 reports 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/project1/reports como se ve en el resultado del segundo comando getfacl.

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

  1. Cómo utilizar ACL (listas de control de acceso) para configurar cuotas de disco para usuarios/grupos
  2. Cómo utilizar 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 a usuarios 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 varios usuarios (a quienes se les otorgarán permisos de lectura/escritura en un directorio específico), de la siguiente manera. Sin embargo, esto creará un directorio compartido:

groupadd projects

2. Luego agregue el usuario tecmint al grupo projects 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 todo! 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.