¿Cómo funcionan los permisos en Linux?

Como vimos en el artículo anterior, unos permisos mal configurados pueden hacer que un atacante que haya conseguido acceso a un sistema Linux, sin apenas privilegios, pueda explotarlos para convertirse en root.

Vídeo de la entrada

En esta entrada veremos exactamente cómo funcionan los permisos en linux. Pero antes veamos cómo podemos listar un directorio para ver los permisos que tienen sus elementos. Por cierto, directorio y carpeta es lo mismo, por si te generaba alguna duda.

Como os decía, listaremos los elementos con el comando ls y los argumentos -la. Realmente para ver los permisos es suficiente con poner -l pero a mi me gusta usar la otra opción ya que así, además de mostrar ficheros y carpetas que empiezan por un punto (elementos ocultos), se muestra los permisos del directorio actual y del directorio que engloba actual.

Comparación del output según el argumento del comando ls

Una vez hayamos lanzado el comando veremos bastante contenido así que vamos a desglosarlo de derecha a izquierda:

Partes del resultado del comando ls
  1. Esta parte es la más común. Muestra el contenido de la propia carpeta como sus ficheros y sus directorios.
  2. Aquí se indica cuándo fue modificado cada elemento por última vez.
  3. Tamaño en bytes de cada elemento. Hay una opción para mostrarlo de forma más entendible.
  4. En este apartado vemos que hay 2 columnas con un nombre cada una. La de la izquierda indica el usuario propietario del elemento y la de la derecha el grupo. Por si no lo sabes, los grupos pueden englobar varios usuarios y se usan para organizar y restringir el acceso a diferentes recursos de uno forma más sencilla. Luego veremos cómo.
  5. Al lado de estas 2 columnas vemos un número que indica la cantidad de referencias hacia ese enlace que existen. Si sentís curiosidad sobre a qué se refiere con “enlaces” os dejo este link. Aunque no es relevante para lo que estamos haciendo.
  6. Finalmente, la última parte, los permisos. Por ejemplo:

-rwxrw-r–

Existen 10 posiciones en los permisos de Linux. La primera parte, empezando por la izquierda, nos indica el tipo de fichero. El más común es el guión, que indica que es fichero corriente. Aunque existen otros, como la d que especifica un directorio. Hay más pero no tienen mucha importancia para lo que nos interesa.

Las otras nueve posiciones se dividen en 3 packs de 3 permisos. En todas siguen el siguiente orden: rwx. ¿Y que quieren decir? Como ya te debes haber imaginado: r de lectura, w de escritura y x de ejecución.

Funcionamiento permisos linux
Funcionamiento permisos

Por lo tanto, en cada uno de estos packs se definirán unos permisos. El primer pack de 3 (rojo), definirá los permisos para el propietario. El segundo (verde), los permisos para los usuarios que pertenezcan al grupo establecido y el tercero (morado), los permisos para el resto de usuarios del sistema.

Veamos un ejemplo a ver si queda más claro. En este caso, el usuario kali es el propietario del fichero user_creds y básicamente podrá hacer lo que quiera ya que tiene los 3 permisos configurados. Además, cualquier usuario que esté en el grupo “devs” podrá leer su contenido. Ahora bien, estos no podrán ni escribirlo ni ejecutarlo. Todos los usuarios restantes del sistema no podrán ni leer, ni escribir, ni ejecutar.

Ejemplo permisos

Por cierto, cabe destacar que los propios directorios tienen permisos, cómo habéis podido comprobar ( . y .., en la foto), y funcionan igual.

Para resumir: existen 3 partes donde en cada una se definen 3 permisos y que la primera parte define los permisos del propietario, la segunda los del grupo y la tercera al resto de usuarios. ¿Sí?

En la próxima entrada veremos otro ejemplo de mala configuración en los permisos de un sistema Linux para escalar privilegios y llegar a ejecutar comandos como root.

¡Espero que te haya resultado interesante!

Saludos.

Si te ha sido de ayuda, ¡comparte!

Deja una respuesta