Cómo usar permisos especiales Los bits setuid, setgid y pegajosos
- 4097
- 270
- Carmen Casillas
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 desudo
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
- « Cómo ejecutar automáticamente el script de shell al arranque de inicio en Systemd Linux
- Cómo actualizar Debian 8 Jessie a Debian 9 Stretch »