En Linux, los permisos tradicionales asignan derechos al propietario, al grupo y al resto de usuarios. Cuando necesitas conceder acceso a una persona concreta sin cambiar la pertenencia del archivo, las listas de control de acceso (ACL) ofrecen una opción más precisa.
Esta guía muestra cómo revisar y modificar permisos con chmod y chown, y cómo consultar o establecer ACL con getfacl y setfacl. Los ejemplos actúan sobre rutas concretas; verifica siempre el destino antes de aplicar cambios.
Consultar propietario y permisos
Usa ls -l para una vista rápida o stat para mostrar el modo y la propiedad de una ruta:
ls -ld proyecto informe.txt
stat -c '%A %a %U:%G %n' proyecto informe.txt
En una salida como -rw-r-----, el primer carácter indica el tipo de objeto y los siguientes grupos de tres caracteres corresponden al propietario, al grupo y al resto de usuarios. En directorios, x permite atravesar o buscar nombres dentro del directorio.
Ajustar permisos con chmod
chmod acepta modos simbólicos o numéricos [1]. Por ejemplo, 640 da lectura y escritura al propietario, lectura al grupo y ningún permiso al resto; 750 permite al propietario leer, escribir y atravesar un directorio, mientras que el grupo puede leerlo y atravesarlo:
chmod 640 informe.txt
chmod 750 proyecto/
También puedes expresar un cambio puntual en forma simbólica. Este ejemplo añade escritura para el grupo sin reemplazar los demás bits actuales:
chmod g+w informe.txt
Evita usar chmod -R 777 como solución general: concede escritura a cualquier usuario sobre todos los objetos alcanzados. Si un servicio necesita acceder a una carpeta, identifica primero el usuario o grupo del servicio y concede solo los permisos necesarios. Recuerda que -R cambia los permisos de toda la jerarquía indicada [1].
Cambiar propietario o grupo
Si el propietario o el grupo no son los adecuados, chown permite cambiarlos [2]. Sustituye los nombres de ejemplo por cuentas y grupos existentes en el sistema:
sudo chown ana:equipo informe.txt
Para cambiar solo el grupo, puedes usar chgrp:
sudo chgrp equipo informe.txt
Comprueba el resultado con ls -l o stat. Evita aplicar chown -R a rutas amplias —en particular, a directorios de sistema— sin revisar exactamente qué contenido quedaría afectado.
Conceder acceso específico con ACL
Las ACL permiten añadir entradas para usuarios o grupos concretos. Para dar lectura a la usuaria ana sobre un archivo y consultar después su lista de permisos [3][4]:
setfacl -m u:ana:r-- informe.txt
getfacl informe.txt
En un directorio, los permisos r-x permiten a la usuaria consultar los nombres y atravesar la ruta, pero no crear o modificar archivos:
setfacl -m u:ana:r-x proyecto/
Para que una entrada se herede en objetos nuevos dentro de un directorio, se puede definir una ACL predeterminada:
setfacl -m d:u:ana:r-x proyecto/
getfacl proyecto/
Las ACL predeterminadas se aplican a objetos creados bajo ese directorio; los permisos efectivos de cada objeto también dependen del modo con que la aplicación lo cree. En la salida de getfacl, revisa la entrada mask: limita los permisos efectivos de las entradas de grupo y de usuarios o grupos nombrados [3][4].
Para retirar la entrada de acceso añadida a un archivo:
setfacl -x u:ana informe.txt
Comprobación
Después de un cambio, verifica la propiedad y los permisos y, si corresponde, prueba el acceso con la cuenta afectada. ls -l muestra los bits tradicionales; getfacl permite ver además las entradas ACL y sus permisos efectivos.
En resumen
- Inspecciona propietario y permisos antes de modificarlos.
- Usa
chmodychownpara cambiar derechos y propiedad sobre rutas específicas. - Usa ACL cuando necesites dar acceso a un usuario o grupo adicional sin abrirlo a todos.
- Evita cambios recursivos amplios y
chmod 777; comprueba el resultado después de cada ajuste.
📚 Fuentes consultadas
- chmod(1) — Linux manual page
- chown(1) — Linux manual page
- setfacl(1) — Linux manual page
- getfacl(1) — Linux manual page