Cambia fácilmente los permisos con chmod

Cambiando permisos con chmod

¡Hola!

En esta ocasión vamos a ver como cambiar los permisos de cualquier archivo fácilmante usando chmod.
En este tutorial trataré de explicarme lo más claro posible para que cualquier persona pueda entenderlo.

 

Como siempre, empecemos por el principio.. ¿Qué es chmod?

Antes que nada aclarar de donde procede el acrónimo de chmod, ya que así nos será más fácil recordar este comando. chmod viene de change mode, y, como habréis podido deducir por el título, es un comando que sirve para cambiar los permisos tanto de lectura, como de escritura como de ejecución de un archivo o carpeta.

En primer lugar, para ver los permisos de un archivo o carpeta, podemos ejecutar el comando ls -l para que nos muestre datos como el usuario, grupo y los permisos que tiene un determinado archivo o carpeta. Nos debería salir algo así: 

ls -l - cambiar permisos chmod

 

Como podéis ver, en la foto nos sale lo siguiente: drwxr-xr-x 2 kevin vboxusers 4096 mar 16 20:10 Tutoriales. Analicemos la parte de los permisos.

Básicamente, para no liaros mucho, debéis saber que lo primero que sale (drwxr-xr-x) son los permisos del archivo. kevin es el usuario y vboxusers el grupo al que pertenece la carpeta.

Bien, debemos saber que los permisos se dividen en tres partes:

Directorio o fichero: si os dais cuenta, la primera letra que nos sale en dicha línea es una d. Esa d nos está diciendo que se trata de un directorio. Si en su defecto saliera un guión, nos estaría diciendo que se trata de un archivo regular.

Usuario: Estos permisos se corresponden con el usuario dueño de la carpeta, en mi caso, kevin. Los permisos relativos al usuario dueño de la carpeta serán las tres primeras letras después de la d (o guión). En este caso rwx (ahora pasaremos a explicar que significa cada letra, tranquilos 😉 )

Grupo: Las siguientes tres letras después de el rwx que corresponde al usuario, hacen referencia al grupo al que pertenece la carpeta. En este caso, los permisos correspondientes serían r-x.

Otros: Las siguientes tres letras después de las pertenecientes a grupo (osea, r-x), hacen referencia a los permisos que va a tener cualquier otro usuario que no sea el dueño de la carpeta ni esté en el mismo grupo. De ahí su nombre; otros. Sus respectivos permisos serían r-x.

 

Bien. De momento espero que os haya quedado claro qué letras corresponden a cada usuario/grupo/otros. Como habréis podido observar, los permisos de cada cosa tienen unas letras en común que siempre son las mismas: la r, la w, y la x. ¿Qué significa cada una?

r: viene de Read. Si el usuario/grupo/otros tiene el permiso r, quiere decir que tienes permiso de lectura, osea, puedes acceder a la carpeta o al archivo y leer su contenido sin modificarlo.

w: viene de Write. Si el usuario/grupo/otros tiene el permiso w, quiere decir que tiene permiso de escritura: En el caso de un archivo, podríamos editar su contenido y guardarlo. En caso de una carpeta, podríamos crear más subcarpetas dentro o pasar archivos a esa carpeta, cosa que si solo tuvieramos permiso de lectura no podríamos hacer.

x: viene de eXecute. Si el usuario/grupo/otros tiene el permiso x, quiere decir que tiene permiso para ejecutar archivos. Por ejemplo, para abrir un script necesitaríamos permiso de ejecución, pero si se tratara de un programa ya compilado, solo necesitaríamos permiso de lectura.

 

 

Sumando 2 y 2

Si lo habéis entendido, probablemente estaréis pensando: “Aaaaahh! Ahora todo encaja!” Vamos por partes. Analicemos los permisos de la carpeta anterior.

drwxr-xr-x

¿Qué quiere decir este conjunto de permisos de la carpeta? Bien, veámoslo parte por parte, probablemente ya lo vayas pillando y eso me alegra 😉

d: Hace referencia al tipo de archivo. la d nos dice que es un directorio.

rwx: Estos son los permisos correspondientes al usuario. En este caso, tiene los 3 permisos, tanto de lectura (r), como de escritura (w), como de ejecución (x).

r-xEstos permisos corresponden a los usuarios pertenecientes al grupo del archivo. Si un usuario pertenece a dicho grupo (en mi caso vboxusers), tendríamos permiso de lectura (r), no tendríamos permiso de escritura (en vez de la w sale un guión, -), y sí tendríamos permiso de ejecución.

r-xEstos permisos corresponden a cualquier otro usuario diferente al dueño o a un usuario perteneciente al grupo de la carpeta. En este caso, tendríamos solamente permiso de lectura y ejecución.

Chuleta chmod  - cambiar permisos chmod
Chuleta chmod. Crédito: endlesgeek.com

 

 

Definitivamente lo entiendo, pero, ¿Cómo puedo cambiar yo esos permisos?

En primer lugar, tienes que saber que para poder cambiar los permisos de un archivo o carpeta, debes ser el dueño de dicho archivo o carpeta.

El comando que usaremos será el famoso chmod, cuya sintaxis vamos a explicar ahora mismo.

en chmod, podemos quitar o dar permisos de una forma muy simple: con un + o con un -. Como los permisos van por usuario, grupo y otros, en chmod podemos cambiar permisos de usuario, grupo y otros, pero, ¿Cómo se hace?
Si escribimos chmod a+rwx archivo, estamos dándole a todos (usuario, grupo y otros) permisos de lectura, escritura y ejecución. La a viene de all. Todos.

Si escribimos chmod u+rwx script.sh, estamos dándole permisos de lectura, escritura y ejecución al dueño de la carpeta. u viene de user. Osea, usuario.

Si escribimos chmod g-rw script.sh estamos quitándole a los usuarios pertenecientes al grupo del archivo los permisos de lectura y ejecución, ¿Por qué? Tenéis que saber que en chmod, + otorga y – resta permisos, por tanto, si pusiéramos g+rwx y luego g-rw, el permiso de ejecución se conservaría, ya que sólo hemos quitado los permisos de lectura y escritura. viene de group. Grupo.

Si escribimos chmod o+rx script.sh, estamos otorgándole a otros usuarios que no sean el dueño ni pertenezcan al grupo de la carpeta permisos de lectura y ejecución. viene de others. Otros.

 

Imaginemos que nos encontramos un archivo con los siguientes permisos:

Propiedades archivo  - cambiar permisos chmod

 

Imaginemos que, queremos darle permisos de escritura a cualquier usuario que no seamos nosotros, esté o no en el grupo de la carpeta, ¿Qué haríamos? A estas alturas ya sabrás la respuesta.

chmod o+w script.sh

Una vez hiciéramos eso, nos quedaría así:

Propiedades Archivo - cambiar permisos chmod

 

 

¡Extra!

¿Y si quisiéramos que sólo el usuario dueño del archivo tuviera permisos de lectura, escritura y ejecución?

chmod u+rwx og-rwx script.sh

Nos quedaría de la siguiente forma:

Propiedades chmod - cambiar permisos chmod

Como habéis podido comprobar, esta vez hemos usado og, ¿Qué quiere decir og? Pues es simplemente o de others y g de groups juntos, para quitar permisos tanto a usuarios pertenecientes al grupo como a otros usuarios que no sean el dueño ni pertenezcan al grupo de la carpeta. Si ponemos chmod uo+rw script.sh estaríamos dándole permisos de lectura y escritura al dueño de la carpeta y a otros usuarios que no sean el dueño ni estén en el grupo de la carpeta. cambiar permisos chmod

 

Y hasta aquí este tutorial de chmod. Existen otras opciones como usar el sistema octal para dar y quitar permisos pero sería mucho lío, si acaso lo dejaré para una mini parte 2 si os ha gustado la primera, claro. cambiar permisos chmod
Aunque en la publicación siempre haga referencia a que lo habéis entendido todo, si no os ha quedado claro podéis preguntarme en los comentarios que estaré encantado de explicároslo de mil formas diferentes hasta que lo entendáis por completo 😉 cambiar permisos chmod

Personalmente, chmod me ha salvado más de una vez la vida, ya que a la hora de programar tareas con Crontab, a los scripts hay que asignarles permisos de ejecución para que crontab pueda ejecutarlos.

Recordad que si no somos el dueño de la carpeta, utilizando sudo podemos solucionar todos nuestros problemas 😉

About Kevin 26 Articles
Fanático de Linux ante todo. Técnico en Sistemas Microinformáticos y redes. Soy curioso por naturaleza, me gusta investigar sobre aquello que no sé, en especial sobre tecnología. La sabiduría es poder.

4 Comments on Cambia fácilmente los permisos con chmod

  1. jamas entenderé el chmod :(, cada vez que tengo que aplicar permisos en Linux tengo que volver a buscar información… vaya lío para meter unos simples permisos

    • Quizá deberías tener una especie de “chuletilla” a mano para ayudarte a entenderla mejor ¿No crees? Es siempre lo mismo: usuario, grupo y carpeta, (rwx rwx rwx). ¡Ánimo!

Leave a Reply

Tu dirección de correo no será publicada.


*