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 dar 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 use el comando sudo con privilegios equivalentes.

Comencemos creando el directorio llamado informes usando el comando mkdir :

# mkdir -p /shares/project1/reports   				

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

rojo

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 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 = 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

Desde 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 hora 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/project1/reports como se ve en la salida del segundo comando getfacl

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

  1. How to Use ACLs (Access Control Lists) to Setup Disk Quotas for Users/Groups
  2. How to Use ACLs (Access Control Lists) to Mount Network Shares

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

Uso de grupos para dar 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 los que 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 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 dar 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.