Introducción
En GNU/Linux todos los ficheros y directorios tiene un usuario y un grupo (a menos que lo cambies los del creador) y una serie de permisos asignados.
Existen 3 tipos de permisos:
– Lectura (R)
– Escritura (W)
– Ejecución (X)
*La letra que está entre paréntesis es la identifica al permiso
Y cada tipo de permiso se asigna a:
– Usuario: Dueño del fichero
– Grupo: Grupo al que pertenece el fichero
– Otro: Otros usuarios que no pertenecen al mismo grupo
* La letra en negrita identifica el permiso
Tipos de permisos
Permisos de lectura
Un usuario con permisos es lectura sobre un archivo puede visualizar el contenido, tanto desde una aplicación (como gedit) como desde consola de comandos (usando cat por ejemplo).
Del mismo modo, si el usuario goza de permisos de lectura sobre un directorio será capaz de listar los ficheros en ese directorio, ya sea con el gestor de ficheros (Nautilus, Caja, Thunar, etc) o por consola, usando el comando ls.
Permiso de escritura
Un usuario con permisos de escritura sobre un archivo puede editar el contenido, tanto desde una aplicación (como gedit) como desde consola de comando (usando nano por ejemplo).
Así mismo, si el usuario dispone de permisos de escritura sobre un directorio será capaz de crear ficheros y carpetas en ese directorio, ya sea con el gestor de ficheros (Nautilus, Caja, Thunar, etc) o por consola, usando el comando mkdir.
Irónicamente, es posible tener permisos para crear un fichero o directorio, pero no poder ver el fichero o directorio que has creado por no tener permisos de lectura.
Permisos de ejecución
Los permisos de ejecución se utilizan principalmente en aplicaciones y scripts. Si dispones de permisos puedes ejecutar la aplicación/script.
En el caso de los scripts si no tienes permisos GNU/Linux suele abrir el script con un editor de texto.
Como consultar los permisos
Los permisos los puedes consultar usando el comando ls (listar) con el modificador -l (ele minúscula: formato largo). La primera columna son los permisos.

Otra opción es entrar en las propiedades del fichero/directorio.
Cómo interpretar los permisos
Los permisos se muestran como 10 caracteres, el primer carácter puede ser un guión (-) si es un fichero o una “d” si es un directorio*. A continuación están los permisos, que se representan con un total de 9 caracteres: 3 para el usuario, 3 para el grupo y 3 para otros.
*Hay mas tipos, pero esos son los mas frecuentes.
¿Cómo modificar los permisos?
Los permisos se modifican usando el comando chmod, a continuación los permisos, luego el fichero/carpeta y opcionalmente puede tener modificadores.
-fR significa forzar y recursivamente, dos modificadores realmente útiles
¿Cómo se representan los permisos?
Los permisos pueden estar escritos en octal o en notación simbólica.
La principal diferencia entre uno y otro es que el octal “obliga” a modifica todos los permisos, mientras que el otro modo permite modificar tan solo aquellos que sean necesarios, el resto se quedan igual.
Notación simbólica
En la notación simbólica, se especifica a quien va dirigido el permiso (usuario, grupo, otros o todos), seguido de un mas o un menos (agregar o quitar) y a continuación los permisos.
Por ejemplo, el comando “chmod u+r fichero.txt” agrega permisos de lectura al usuario, y deja el resto de permisos tal cual estaba.
También es posible establecer varios permisos a la vez separando por comas los diferentes permisos. Por ejemplo:
chmod u+rwx,g+rw,g-x,o-r fichero.txt
* El usuario obtiene permisos lectura/escritura/ejecución
* El grupo obtiene permisos de lectura/escritura y pierde los de ejecución
* Otros pierde permisos de lectura (el resto se quedan como están)
Notación octal
Para asignar permisos frecuentemente se utilizan 3 números octal (de 0 a 7) que se obtienen tranformando un número binario que varía en función de los permisos para el usuario, grupo y otros.
chmod 744 fichero.txt
* Todos los permisos para el usuario
* Permisos de lectura para grupo y otros
Ejemplos de permisos
Asigna todos los permisos al usuario, y permisos de lectura al grupo y a otros.
chmod 744 fichero.txt
Asigna a todo el mundo permisos de lectura, escritura y ejecución sobre tu carpeta home (~) de forma recursiva (a todo lo que esté dentro).
chmod 777 ~ -fR
Asigna permisos de lectura y escritura para el usuario, lectura para el grupo y ningún permiso para otros.
chmod 640 fichero.txt
Asigna permisos de ejecución para el usuario a script.sh
chmod u+x script.sh
Asigna permisos todos los permisos al grupo, el resto se dejan como están.
chmod u+rwx fichero.txt
Asigna permisos de lectura a todo el mundo, el resto se dejan como están.
chmod a+r fichero.txt
Asigna todos los permisos al usuario, permisos de ejecución al grupo y elimina los permisos de ejecución a otros, el resto se dejan como están.
chmod u+rwx,g+x,o-x script.sh
Muy buen blog. Saludos. Psd. Espero el gatito se salve.
Me gustaMe gusta
Esto es tan claramente explicado, buenísimo. ¡Gracias!
Me gustaMe gusta
Gracias por comentar, me alegro mucho que te guste 🙂
Me gustaMe gusta
Hola, estaba viendo el articulo que escribiste y estoy renegando un poco con estas lineas, ya que al ejecutar un script, me dice que el lanzador no es de confianza… tenes alguna idea si estoy ejecutando algo mal?
aca las lineas.
echo $PASSWORD | sudo -S cp /usr/share/applications/google-chrome.desktop /home/$USUARIO/Escritorio/google-chrome.desktop
echo $PASSWORD | sudo -S chmod 777 ~ -fR /home/$USUARIO/Escritorio/google-chrome.desktop
Me gustaMe gusta
Hola,
He ejecutado los mismos comandos que tú y cambiando el dueño del fichero se soluciona: sudo chown $tuusuario /home/$tuusuario/Escritorio/google-chrome.desktop
Tienes una entrada en el blog con varios ejemplos: https://purolinux.com/2018/01/18/comando-chown-cambiar-propietario/
Saludos
Me gustaMe gusta