Drupal Pills
Joan Galtés i Moreno

Entiende cómo funcionan los permisos de fichero en Linux en 5 minutos

El sistema de permisos ayuda a controlar quién puede ver, modificar o ejecutar archivos y directorios en el sistema Linux, lo cual es fundamental para mantener la seguridad y la integridad del sistema. En Linux, los permisos de archivos y directorios se pueden expresar de dos maneras: con notación simbólica (como rwx) y con notación octal (como 777).

En este artículo aprenderemos el funcionamiento de los permisos en Linux mediante el siguiente ejemplo, resultado de ejecutar el comando ls -la en la raíz de un Drupal 10:

↑ Tornar a dalt

Notación simbólica

Primero de todo, mencionar que en rojo se indica si el ítem es un archivo (-) o una carpeta (d, de directory). También puede encontrarse una l (minúscula) que significaría que el ítem es un enlace simbólico (symlink).

Ejemplo de listado de contenidos en la raíz de un Drupal instalado en un entorno Linux

Dicho esto, pasamos a comentar los permisos, que son las columnas con letras inmediatamente a la derecha, agrupados en 3 conjuntos de 3 caracteres, los cuales pueden adoptar 4 valores: 'r' (*read*), 'w' (*write*), 'x' (*execute*) o '-' (*none*).

  • 1er grupo (en verde): Se trata de los permisos del propietario.
  • 2º grupo (en amarillo): Se trata de los permisos de los miembros del grupo al que también pertenece el propietario.
  • 3er grupo (en azul): Se trata de los permisos para toda la demás gente (todos aquellos que no son ni el propietario ni pertenecen a su grupo de usuarios).

Por ejemplo, veamos algunas líneas de la imagen:

a) Directorio . (directorio actual): 

drwxr-xr-x 7 web2 4.0K Aug  8 21:59 .
  • d: Es un directorio.
  • rwx: El propietario (web2) tiene permisos de lectura, escritura y ejecución.
  • r-x: El grupo tiene permisos de lectura y ejecución, pero no de escritura.
  • r-x: Todos los demás usuarios tienen permisos de lectura y ejecución, pero no de escritura.

b) Archivo autoload.php

-rwxr-xr-x 1 web2 315 Jul 25 17:35 autoload.php
  • -: Es un archivo normal.
  • rwx: El propietario (web2) tiene permisos de lectura, escritura y ejecución.
  • r-x: El grupo tiene permisos de lectura y ejecución, pero no de escritura.
  • r-x: Todos los demás usuarios tienen permisos de lectura y ejecución, pero no de escritura.

c) Archivo .htpasswd:

-rw-r----- 1 web2 47 Aug  8 21:59 .htpasswd
  • -: Es un archivo normal.
  • rw-: El propietario (web2) tiene permisos de lectura y escritura, pero no de ejecución.
  • r--: El grupo tiene permisos de lectura, pero no de escritura ni ejecución.
  • ---: Todos los demás usuarios no tienen ningún permiso para este archivo.
↑ Tornar a dalt

La notación octal

Ahora hablaremos de la notación octal de los permisos. En esta notación, los permisos se representan con tres dígitos, donde cada uno puede tener un valor entre 0 y 7. Cada dígito octal se deriva de sumar los valores de los permisos:

  • Lectura (r): 4
  • Escritura (w): 2
  • Ejecución (x): 1

Por ejemplo, si el propietario tiene permisos rwx, esto se representa con el dígito 7 (4+2+1=7). Si el grupo tiene permisos r-x, esto se representa con el dígito 5 (4+0+1=5). Si los demás tienen permisos r--, esto se representa con el dígito 4 (4+0+0=4).

Así, 777 significa que todos (propietario, grupo y otros) tienen todos los permisos (rwx), mientras que 754 significaría:

  • Propietario: rwx (7 = 4+2+1)
  • Grupo: r-x (5 = 4+0+1)
  • Otros: r-- (4 = 4+0+0)
↑ Tornar a dalt

Interpretación de los permisos

  • Directorios (d): Necesitan el permiso de ejecución (x) para poder acceder a ellos (cd a un directorio). Si no tienes permiso de ejecución, no puedes entrar al directorio.
  • Archivos ejecutables (x): Si un archivo tiene el permiso de ejecución, se puede ejecutar como un programa o script. Es típico para scripts y binarios.
  • Lectura (r) y escritura (w): Se aplican tanto a archivos como a directorios. Sin permiso de lectura, no puedes ver el contenido de un archivo o listar el contenido de un directorio. Sin permiso de escritura, no puedes modificar un archivo ni agregar/eliminar archivos dentro de un directorio.
↑ Tornar a dalt

Sobre el autor

Joan Galtés i Moreno

Desarrollador full-stack, especializado en Drupal desde 2008. Me gusta concebir y desarrollar tanto el back-end como el front-end en todos mis proyectos. Entusiasta de las nuevas tecnologías, con un buen dominio de PHP, MySQL, Git, Javascript, HTML 5, SASS y CSS 3, poniendo siempre el énfasis en la usabilidad y la accesibilidad en todo aquello que desarrollo.

Compartir

Deja tu comentario