Tipos de permisos en Linux.

¿Qué son y cómo funcionan los permisos en Linux?

Featured image

¿Alguna vez has tratado de limitar el acceso a un documento o fichero para que solo puedan acceder un grupo de peronas en concreto? Como por ejemplo utilizando la opción de dar acceso de escritura y lectura a x persona en un archivo de Google Drive. Bien, pues los permisos de Linux siguen una filosofía bastante similar.

Permisos en Google Drive


¿Qué son?

Los permisos de ficheros en Linux nos permiten designar que usuarios tendrán acceso a modificar, leer y ejecutar cada fichero de una manera bastante personalizable y adaptable según las necesidades de cada uno.

Esto es bastante útil ya que por ejemplo un documento que está en el usuario José, el propietario que es José, no querrá que el usuario Carlos pueda acceder y modificarlo. Y aquí es donde entran los permisos.

Tipos de permisos o niveles de permisos.


Estructura de permisos.

Vale, muy bien todo esto, pero ¿cómo puedo saber que permisos tienen los archivos?

Pues mi sencillo, con el comando ls -l o ls --long. Ambos son los mismos parámetros solo que uno es la versión contraída y otro la versión extendida.

Si quieres ver los permisos de archivos ocultos tendrás que añadir el parámetro -a o –all. ls -la o ls --long --all

ls -l

Como hemos podido observar, los permisos tienen la siguiente estructura:

estructura de los permisos

Tipo de fichero.

Esta información la encontraremos en la primera columna de la estructura de los permisos y nos muestra el tipo de archivo que es.

Identificador Información
- Archivo
b Archivo de bloques especiales
c Archivo de caracteres especiales
d Directorio
l Vínculo o enlace
p Pipes (tuberías)

Los más comunes son - y d.

Tipos de permisos básicos.

Permiso Información
- Sin permiso
r Permiso de lectura (read)
w Permiso de escritura (write)
x Permiso de ejecución (execute)

⚠️ OJO! En el caso de querer que una carpeta sea visible, no bastará con que tenga el permiso de lectura, también tendrá que tener el de ejecución. Si solo aplicamos el de lectura, únicamente podremos ver que la carpeta existe, pero no podremos acceder a su contenido.


Gestionar permisos en GNU/Linux.

Una vez que sepamos identificar los distintos permisos, vamos a aplicarlos a un archivo.

Ahora abriremos nuestra consola y crearemos un archivo llamado prueba.md el nombre puede ser cualquiera, esto es solo un ejemplo.

touch prueba.md

Bien, una vez creado vamos a ver que permisos tiene:

ls -l

ls -l prueba.md

Y podemos comprobar que el archivo ‘prueba.md’ tiene asignados los permisos rw- r– r–

Eso significa que el propietario tiene permisos de lectura (r) y escritura (w), pero no de ejecución (x); también podemos ver como tanto el grupo como otros, solo tienen permisos de lectura (r).

Asignar permisos.

Una vez identificados los permisos de un archivo, vamos a cambiarlos.

En este caso vamos a asignarle al archivo ‘prueba.md’ que el propietario tenga permisos de ejecución (x) y que tanto el grupo como los otros tengan permisos de escritura.

Nos tendrían que quedar algo así: rwx rw- rw-

En GNU/Linux, para asignar permisos usamos el comando chmod, entonces para aplicar los permisos anteriormente mecionados tendríamos que ejecutar:

chmod u+x,g+w,o+w prueba.md

ℹ️ Cuando usamos el comando chmod para asignar varios permisos, tenemos que separar cada asignación por una coma.

Este sería el resultado:

asignando permisos

Ahora si quisiéramos quitar permisos, lo único que tendríamos que cambiar es el “+” por un “-“.

Por ejemplo, vamos a quitar todos los permisos de otros. Por lo que nos tendría que quedar algo así rwx rw- ---

Ejecutamos chmod…

chmod o-r,o-w prueba.md

resultado quitando permisos

💡 ¡Tip extra!

A la hora de asignar permisos para el propietario, es decir el user, si nosotros somos los propietarios no hace falta que escribamos chmod u+x archivo, podemos directamente escribir chmod +x archivo.

Ahorrándonos así tener que poner “u” (user).