Categorías: Linux

Dominando la terminal de linux: los permisos y chmod

 

 

Como ya apuntábamos en entradas anteriores, sobre la terminal de Linux, es muy importante dominar el concepto de permisos de un archivo, cambiarlo y saber cuales tenemos que poner.

¿Qué son los permisos?

Los permisos son una máscara de bits que nos permite definir quien va a poder leer, escribir y/o ejecutar este archivo.

Una máscara de bits es un conjunto de bits, donde cada posición tiene un valor específico y puede valer 1 para activar esa opción, 0 si queremos desactivar la opción.

En el caso que nos ocupa la máscara tiene 3 bits: lectura, escritura y ejecución. En este orden (el orden es importante). Por ejemplo si nosotros ponemos 101 estamos diciendo que tenemos permisos para leer el archivo y para ejecutarlo, pero no para escribirlo ya que el bit de escritura vale 0. Para un manejo más simple y sencillo se utilizan números que luego se pasan a octal. Si queremos poner, todos los permisos ponemos un 7 ya que en octal es 111.

Viendo los permisos

Como ya dijimos el otro día para ver los permisos de los archivos que están contenidos en un directorio podemos utilizar ls -l.

la terminal ejecutando ls -l

Si por el contrario, solo queremos ver los permisos que están asociados a un archivo podemos utilizar ls -l ruta_archivo.extension . Como en este ejemplo:

La terminal ejecutando ls -l ruta_archivo para ver los permisos

Para una mejor visualización por pantalla, en lugar de los números de cada máscara nos sale una r de lectura, una w de escritura y una x de ejecución. Si no tenemos alguno de estos permisos nos sale un – que nos indica que ese permiso no lo tenemos. En el caso de Cywin.ico yo tengo permisos de lectura y escritura y no de ejecución.

Gestionando los permisos en Linux

En Linux, todo archivo tiene asociado por lo menos, 3 grupos de permisos. De izquierda a derecha, tenemos el grupo de permisos del dueño, los permisos del grupo de usuarios a los cuales pertenece el dueño y el grupo de permisos para el resto de usuarios. Ejemplo si tenemos 2 grupos de usuarios, administradores y alumnos y tenemos un alumno con nombre de usuario Pepe. El primero grupo de permisos son los que tiene Pepe, el segundo los que tienen los alumnos y el tercero los que tienen todos los usuarios.

chmod

chmod es el comando que nos proporciona Linux, para poder cambiar los permisos desde la terminal. Su uso es muy sencillo, solo hay que poner $ chmod num1num2num3

Cada uno de los num es un número entre 0 y 7 en octal, que representa los permisos que queremos darle. El primer número indica los permisos que queremos tener como usuario, el segundo los que le damos al grupo de usuarios al que pertenecemos y el tercero los que le damos al resto. Para conseguir el numero según los permisos que queramos dar, os dejamos esta tabla (fuente Wikipedia)

Número Binario Lectura (r) Escritura (w) Ejecución (x)
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

 

Ejemplo de uso:

  • Quiero tener yo todos los permisos y el resto no, así no me lo copian/borran etc. $ chmod 700
La terminal ejecutando chmod 700 para tener todos los permisos
  • Quiero tener yo todos los permisos y todo el mundo puede acceder a leer mi archivo, pero no me lo pueden borrar ni ejecutar. $ chmod 744
  • Quiero que tanto yo como mi grupo de usuarios, en el ejemplo otros alumnos, puedan leer y escribir el archivo, pero otros no tengan ningún permiso. $ chmod 660

El conjunto de casos es enorme, pero sabiendo como van los números, es ir buscando en la tabla y poniendo el que corresponda, para los permisos que les queramos otorgar.

Jorge Durán

Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL y .Net backend developer en idealista.

Share
Publicado por
Jorge Durán

Recent Posts

Docker: conceptos principales y tutorial paso a paso

Hoy queremos hablaros de Docker un proyecto que cada día es más usado, porque permite…

3 años hace

Crea diagramas rápidamente usando código

Cada vez estamos más acostumbrados a usar código para generar la infraestructura (IaC), documentar nuestro…

3 años hace

Procesamiento del lenguaje natural con ElasticSearch

Uno de los problemas que se presentan con una mayor frecuencia hoy en día, es…

4 años hace

Elige tecnología clásica y aburrida

Uno de los problemas que solemos tener los programadores, es que nos gusta estar a…

4 años hace

Cómo usar Docker en Windows

Docker es una de las herramientas más usadas por los desarrolladores, sin embargo, usarlo en…

4 años hace

Analiza el coste del uso de JavaScript

Como seguramente sabrás el uso de JavaScript ha crecido exponencialmente en los últimos tiempos, sin…

5 años hace