Permisos en Linux: Cómo leerlos y otorgarlos con CHMOD
En el mundo de Linux, uno de los conceptos más importantes es el manejo de permisos de archivos y directorios. La seguridad y el acceso al sistema dependen de cómo se asignen estos permisos, y es crucial entender cómo leerlos, interpretarlos y modificarlos para asegurarte de que solo las personas adecuadas puedan acceder o modificar archivos importantes.

¿Qué son los permisos en Linux?
Cada archivo y directorio en Linux tiene un conjunto de permisos asociados que definen quién puede leer, escribir y ejecutar el archivo. Estos permisos están divididos en tres categorías:
- Propietario (Owner): La persona que creó el archivo o a la que se le asignó como propietaria.
- Grupo (Group): Un grupo de usuarios que comparten permisos sobre el archivo o directorio.
- Otros (Others): Todos los demás usuarios que no son ni el propietario ni parte del grupo.
¿Cómo leer los permisos en Linux?
Cuando ejecutas el comando ls -l
en una terminal de Linux, puedes ver una lista de archivos con sus permisos detallados. Aquí te explico cómo interpretar lo que aparece:
código$ ls -l
-rw-r--r-- 1 user group 4096 Oct 1 12:00 archivo.txt
La salida del comando incluye una serie de datos clave:
- Primera columna: Muestra los permisos del archivo en una secuencia de 10 caracteres.
- El primer carácter indica el tipo de archivo:
- – (guion) significa un archivo regular.
- d significa un directorio.
- l significa un enlace simbólico.
- Los siguientes 9 caracteres están divididos en tres grupos de tres:
- rw-: Los permisos del propietario (read, write, no execute).
- r–: Los permisos del grupo (read, no write, no execute).
- r–: Los permisos de otros (read, no write, no execute).
- El primer carácter indica el tipo de archivo:
Tipos de permisos
En Linux, los permisos básicos se dividen en tres tipos:
- r (read): Permite leer el contenido de un archivo o ver el listado de archivos en un directorio.
- w (write): Permite modificar o eliminar el contenido de un archivo o añadir/eliminar archivos en un directorio.
- x (execute): Permite ejecutar un archivo como un programa o entrar en un directorio.

Cómo cambiar los permisos: El comando CHMOD
CHMOD (Change Mode) es el comando utilizado en Linux para cambiar los permisos de un archivo o directorio. Puedes usarlo de dos maneras:
1. Modo simbólico
Este modo permite modificar permisos usando símbolos como +, –, y = para añadir, eliminar o establecer permisos específicos:
- +: Añadir un permiso.
- –: Quitar un permiso.
- =: Establecer permisos exactos.
Por ejemplo, si tienes un archivo llamado archivo.txt
y quieres darle permisos de escritura al grupo, ejecutarías lo siguiente:
código$ chmod g+w archivo.txt
En este caso:
- g se refiere al grupo.
- +w añade el permiso de escritura.
Si quisieras quitar el permiso de ejecución para otros:
código$ chmod o-x archivo.txt
2. Modo numérico
El modo numérico de CHMOD utiliza un sistema de tres dígitos, donde cada uno representa los permisos del propietario, grupo y otros. Cada permiso tiene un valor numérico:
- 4: Lectura (r)
- 2: Escritura (w)
- 1: Ejecución (x)
Para establecer permisos, sumas estos valores. Por ejemplo:
- 7: Lectura + Escritura + Ejecución (4 + 2 + 1)
- 6: Lectura + Escritura (4 + 2)
- 5: Lectura + Ejecución (4 + 1)
- 0: Sin permisos
Si quieres dar al propietario todos los permisos (7), al grupo permisos de lectura y ejecución (5), y a otros solo lectura (4), ejecutarías:
código$ chmod 754 archivo.txt
Esto establece los permisos como rwxr-xr–, lo que significa que:
- El propietario puede leer, escribir y ejecutar.
- El grupo puede leer y ejecutar.
- Otros solo pueden leer.
Cambiar el propietario y el grupo: CHOWN y CHGRP
En algunos casos, es necesario cambiar el propietario o grupo de un archivo. Para eso, puedes utilizar los comandos chown y chgrp.
- CHOWN: Cambia el propietario de un archivo.shellCopiar código
$ sudo chown nuevo_propietario archivo.txt
- CHGRP: Cambia el grupo de un archivo.shellCopiar código
$ sudo chgrp nuevo_grupo archivo.txt
También puedes combinar ambos comandos para cambiar propietario y grupo al mismo tiempo:
código$ sudo chown nuevo_propietario:nuevo_grupo archivo.txt
Ejemplos prácticos de CHMOD
- Dar permisos de ejecución a todos los usuarios en un archivo de script:shellCopiar código
$ chmod +x script.sh
Esto permite que cualquier usuario pueda ejecutar el archivoscript.sh
. - Eliminar permisos de escritura para otros usuarios:shellCopiar código
$ chmod o-w archivo.txt
- Dar permisos completos al propietario y permisos de lectura a todos los demás:shellCopiar código
$ chmod 744 archivo.txt
- Dar permisos de lectura y escritura a todos:shellCopiar código
$ chmod 666 archivo.txt
Conclusión
Los permisos en Linux son esenciales para mantener la seguridad y la integridad del sistema. Saber cómo leer y cambiar estos permisos con comandos como chmod, chown, y chgrp te permitirá tener un mayor control sobre quién puede acceder y modificar archivos y directorios. Recuerda que los permisos mal configurados pueden poner en riesgo la seguridad de tu sistema, así que ¡utilízalos con sabiduría!