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.
- Cómo utilizar ACL (listas de control de acceso) para configurar cuotas de disco para usuarios/grupos
- 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.