Logo

Tutoriales UBMI IFC

Recursos para la comunidad

header

chmod Administra los permisos de tus carpetas y archivos.

chmod es un programa que encontrarás en todos los sistemas GNU/Linux.

Es útil para otorgar y elminar permisos de tus archivos y directorios, permitiendo o restringiendo que otras personas puedan interactuar con ellos.

Existen tres tipos de permisos:

Permiso Abreviatura Explicación
Ejecución x Los archivos y directorios con este permiso pueden ser interpretados como un programa, es decir que el sistema intentará evaluar su contenido en busca de instrucciones. DEBES OTORGAR este permiso a todos los scripts y archivos binarios para que estos puedan funcionar, y también A TODOS LOS DIRECTORIOS puesto que lo contrario no podrás acceder a ellos
Lectura r Con este permiso se puede visualizar un archivo usando comandos como cat, less ó nano
Escritura w Este permiso es necesario para modificar el contenido de un archivo, es decir editarlo, esto incluye también el poder renombrarlo o borrarlo del sistema

Para conocer los permisos que tiene determinado archivo o directorio podemos utilizar el comando ls -l y obtendremos un resultdo como el siguiente:

-rw-r--r-- 1 juanito juanito 132 may 22 15:43 depot.json

-rwxr--r-- 1 juanito juanito 1790 may 27 14:06 geometry.sh

-rwxr-xr-x 1 juanito alumnos 1790 may 27 14:06 math.sh

drwxr-xr-x 4 juanito juanito 4096 may 22 15:43 History

En este ejemplo lo primero que vemos es la una cadena de texto con 10 espacios para caracteres, (drwxr-xr-x para el caso del directorio “History”) y en dicho texto podemos conecer exactamente los el tipo y los permisos de cada elemento de un directorio.

El primer caracter corresponde al tipo de elemento si es un archivo (cualquier cosa menos un directorio) observaremos que este espacio será un -, en caso de ser un directorio será reemplazado por una d, en el ejemplo anterior tenemos tres archivos y un directorio.

Los siguientes 9 caracteres se dividen en tres juegos de tres caracteres cada uno de ellos corresponde a alguno de los permisos mencionaodos previamente, Si un archivo o directorio NO tiene un permiso el espacio correspondiente será un caracter: - mientras que si tiene el permiso correspondiente el espacio será reemplazado por la abreviatura del permiso, siempre en el mismo orden rwx para lectura, escritura y ejecución respectivamente.

Cada uno de los juegos de tres letras corresponen a destinatarios distintos de los permisos: el primero es para el dueño del archivo, es decir el nombre del usuario que aparece en la tercer columna del resultado de ls -l en el ejemplo el dueño siempre es el usuario juanito.

El segundo juego de tres letras explica los permisos del grupo, en muchas ocasiones el grupo es el mismo que el usuario, sin embargo cuando se trabaja en equipo a menudo es necesario que personas distintas al dueño puedan editar o ejecutar determinados archivos. En el ejemplo el archivo math.sh es propiedad de juanito pero el grupo del mismo es alumnos (cuarta columna del comando ls -l) esto quiere decir que: cualquier usuario que pertenezca al grupo alumnos gozará de los permisos estipulados en el segundo juego de 3 letras.

El grupo final corresponde a cualquier usuario que no sea el dueño y no pertenezca al grupo indicado. Estos permisos facilitan, por ejemplo que cualquier persona pueda ejecutar un programa sin que necesariamente pueda renombrarlo o modificar su contenido.

Modificando los permisos

Para modificar los permisos usamos el comando chmod este solo lo podemos usar sobre archivos y directorios de los cuales seamos los dueños es decir; no podemos modificar los permisos de archivos de alguien mas (al menos sin ser superusuario)

La manera más facil de cambiar los permisos es usando las abreviaturas de los destinatarios u para el usuario dueño, g para el grupo y a para el resto de usuarios (all) seguido de los signos de - o de + en caso de que queramos eliminar o agregar un permiso respectivamente y a continuación la abreviatura del permiso r, w ó x y finalmente el path del archivo que queremos modificar. Por ejemplo

Un caso especial es cuando queremos modificar los determinados permisos de TODOS los archivos de un directorio para ello podemos utilizar el flag -R (mayúscula) con ello extenderemos la operación a todos los archivos de un directorio en particular, por ejemplo:

Referencia

Los ejemplos de este tutorial fueron extraidos de tldr

header