Cómo usar permisos especiales Los bits setuid, setgid y pegajosos

Cómo usar permisos especiales Los bits setuid, setgid y pegajosos

Objetivo

Conocer cómo funcionan los permisos especiales, cómo identificarlos y establecerlos.

Requisitos

  • Conocimiento del sistema estándar de permisos de UNIX/Linux

Dificultad

FÁCIL

Convenciones

  • # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz
    directamente como usuario raíz o mediante el uso de sudo dominio
  • ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Introducción

Normalmente, en un sistema operativo similar a UNIX, la propiedad de archivos y directorios se basa en el valor predeterminado uid (ID de usuario) y aturdir (ID de grupo) del usuario que los creó. Lo mismo sucede cuando se inicia un proceso: se ejecuta con el ID de usuario efectivo y el ID de grupo del usuario que lo inició, y con los privilegios correspondientes. Este comportamiento puede modificarse mediante el uso de permisos especiales.

El bit setuid

Cuando el setuid Bit se usa, el comportamiento descrito anteriormente se modifica para que cuando se lance un ejecutable, no se ejecuta con los privilegios del usuario que lo lanzó, sino con el del propietario del archivo en su lugar. Entonces, por ejemplo, si un ejecutable tiene el setuid Bit en él, y es propiedad de Root, cuando es lanzado por un usuario normal, se ejecutará con privilegios raíz. Debe estar claro por qué esto representa un riesgo de seguridad potencial, si no se usa correctamente.

Un ejemplo de un ejecutable con el conjunto de permiso setUid es pasada, la utilidad que podemos usar para cambiar nuestra contraseña de inicio de sesión. Podemos verificar eso usando el LS dominio:

ls -l /bin /passwd -rwsr -xr -x. 1 raíz raíz 27768 11 de febrero de 2017 /bin /passwd 

Cómo identificar el setuid poco? Como seguramente ha notado mirar la salida del comando anterior, el setuid bit está representado por un s en lugar del X del bit ejecutable. El s implica que el bit ejecutable está configurado, de lo contrario vería un capital S. Esto sucede cuando el setuid o setgid Los bits están establecidos, pero el bit ejecutable no lo está, mostrando al usuario una inconsistencia: el setuid y setgit Los bits no tienen efecto si el bit ejecutable no está establecido. El bit setuid no tiene ningún efecto en los directorios.



El bit setgid

A diferencia del setuid bit, el setgid bit tiene efecto en los archivos y directorios. En el primer caso, el archivo que tiene el setgid El conjunto de bits, cuando se ejecuta, en lugar de ejecutar con los privilegios del grupo del usuario que lo inició, se ejecuta con los del grupo que posee el archivo: en otras palabras, la identificación del grupo del proceso será la misma de la de el archivo.

Cuando se usa en un directorio, en su lugar, el setgid Bit altera el comportamiento estándar para que el grupo de archivos creados dentro del directorio dicho directorio no sea el del usuario que los creó, sino el del directorio principal en sí mismo. Esto a menudo se usa para aliviar el intercambio de archivos (los archivos serán modificables por todos los usuarios que forman parte de dicho grupo). Al igual que el setUid, el bit SetGID se puede ver fácilmente (en este caso en un directorio de prueba):

LS -LD Test DRWXRWSR -X. 2 EGDOC EGDOC 4096 Nov 1 17:25 Prueba 

Esta vez el s está presente en lugar del bit ejecutable en el sector grupal.

El bit pegajoso

El bit adhesivo funciona de una manera diferente: si bien no tiene ningún efecto en los archivos, cuando se usa en un directorio, todos los archivos en dicho directorio serán modificables solo por sus propietarios. Un caso típico en el que se usa, involucra el /TMP directorio. Por lo general, este directorio es redactado por todos los usuarios en el sistema, por lo que para imposible que un usuario elimine los archivos de otro, el bit adhesivo está configurado:

$ LS -LD /TMP DRWXRWXRWT. 14 raíz raíz 300 nov 1 16:48 /tmp 

En este caso, el propietario, el grupo y todos los demás usuarios tienen permisos completos en el directorio (leer, escribir y ejecutar). El bit pegajoso es identificable por un T que se informa donde normalmente el ejecutable X Se muestra bit, en la sección "otra". De nuevo, un minúscula T implica que el bit ejecutable también está presente, de lo contrario vería un capital T.

Cómo establecer bits especiales

Al igual que los permisos normales, los bits especiales se pueden asignar con el chmod comando, usando el numérico o el ugo/rwx formato. En el primer caso el setuid, setgid, y pegajoso Los bits están representados respectivamente por un valor de 4, 2 y 1. Entonces, por ejemplo, si queremos establecer el setgid Bit en un directorio que ejecutaríamos:

Prueba de $ chmod 2775

Con este comando establecemos el setgid Bit en el directorio, (identificado por el primero de los cuatro números), y le dio privilegios a su propietario y al usuario que son miembros del grupo al que pertenece el directorio, además de leer y ejecutar permiso para todos los demás usuarios (Recuerde que el bit de ejecución en un directorio significa que un usuario puede cd en él o usar LS para enumerar su contenido).

La otra forma en que podemos establecer los bits de permisos especiales es usar la sintaxis UGO/RWX:

Prueba de $ chmod g+s

Para aplicar el setuid Bit a un archivo, habríamos ejecutado:

$ chmod u+s archivo

Mientras que aplicar la broca adhesiva:

$ chmod o+t prueba

El uso de permisos especiales puede ser muy útil en algunas situaciones, pero si no se usa correctamente, puede introducir vulnerabilidades serias, así que piense dos veces antes de usarlas.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Crear y configurar directorios SETGID para la colaboración -..
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo crear modificar y eliminar la cuenta de usuarios en Linux
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • ¿Puede Linux obtener virus?? Explorando la vulnerabilidad de Linux ..
  • Descarga de Linux
  • Cómo arrancar dual Kali Linux y Windows 10