SetUID, SetGID y Sticky Bits en los permisos de archivos de Linux

Como se explica en el artículo Permisos en Linux , Linux utiliza una combinación de bits para almacenar los permisos de un archivo. Podemos cambiar los permisos usando el chmodcomando, que esencialmente cambia los caracteres ‘r’, ‘w’ y ‘x’ asociados con el archivo.

Además, la propiedad de los archivos también depende de la uid(ID de usuario) y la gid(ID de grupo) del creador, como se explica en este artículo . Del mismo modo, cuando iniciamos un proceso, se ejecuta con el uidy giddel usuario que lo inició.

1. El setuidbit
Este bit está presente para archivos que tienen permisos de ejecución. El setuidbit simplemente indica que al ejecutar el ejecutable, establecerá sus permisos en los del usuario que lo creó (propietario), en lugar de establecerlos en el usuario que lo inició. Del mismo modo, hay un setgidbit que hace lo mismo para gid.

Para ubicar el setuid, busque una ‘s’ en lugar de una ‘x’ en el bit ejecutable de los permisos del archivo.

Un ejemplo de un ejecutable con setuidpermiso es passwd, como se puede ver en el siguiente resultado.

ls -l /etc/passwd

Esto devuelve la siguiente salida:

-rwsr-xr-x root root 2447 Aug 29  2018 /etc/passwd

Como podemos observar, la ‘x’ se reemplaza por una ‘s’ en la sección de usuarios de los permisos del archivo.

Para configurar el setuidbit, use el siguiente comando.

chmod u+s 

Para quitar el setuidbit, use el siguiente comando.

chmod u-s 

2. El setgidbocado

Afecta tanto a los setgidarchivos como a los directorios. Cuando se usa en un archivo, se ejecuta con los privilegios del grupo del usuario que lo posee en lugar de ejecutarse con los del grupo del usuario que lo ejecutó.
Cuando el bit se establece para un directorio, el conjunto de archivos en ese directorio tendrá el mismo grupo que el grupo del directorio principal, y no el del usuario que creó esos archivos. Esto se usa para compartir archivos, ya que ahora pueden ser modificados por todos los usuarios que forman parte del grupo del directorio principal.

Para ubicar el setgidbit, busque una ‘s’ en la sección de grupo de los permisos del archivo, como se muestra en el siguiente ejemplo.

-rwxrwsr-x root root 1427 Aug 2 2019 sample_file

Para configurar el setgidbit, use el siguiente comando.

chmod g+s 

Para quitar el setgidbit, use el siguiente comando.

chmod g-s 

Riesgos de seguridad

De setuidhecho, el bit es bastante útil en varias aplicaciones, sin embargo, los programas ejecutables que admiten esta función deben diseñarse cuidadosamente para no comprometer los riesgos de seguridad que siguen, como las saturaciones de búfer y la inyección de ruta. Si un programa vulnerable se ejecuta con privilegios de raíz, el atacante podría obtener acceso de raíz al sistema a través de él. Para eludir tales posibilidades, algunos sistemas operativos ignoran el setuidbit de los scripts de shell ejecutables.

3. El bit adhesivo
El bit adhesivo se introdujo inicialmente para ‘pegar’ un segmento de texto de un programa ejecutable en el espacio de intercambio incluso después de que el programa haya completado la ejecución, para acelerar las ejecuciones posteriores del mismo programa. Sin embargo, en estos días la parte pegajosa significa algo completamente diferente.

Cuando un directorio tiene el sticky bit establecido, sus archivos pueden ser eliminados o renombrados solo por el propietario del archivo, el propietario del directorio y el usuario raíz. El siguiente comando muestra cómo se puede configurar el bit adhesivo.

chmod +t 

Simplemente busque un carácter ‘t’ en los permisos del archivo para ubicar el bit adhesivo. El fragmento a continuación muestra cómo podemos configurar el bit adhesivo para algún directorio «Gatos», y cómo evita que el nuevo usuario elimine un archivo en el directorio.

Para eliminar la parte adhesiva, simplemente use el siguiente comando.

chmod -t 

Dado que la eliminación de un archivo está controlada por el permiso de escritura del archivo, los usos prácticos del sticky bit implican directorios de escritura mundial como ‘/tmp’, de modo que los permisos de eliminación están reservados solo para los propietarios del archivo.

Publicación traducida automáticamente

Artículo escrito por Anannya Uberoi 1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *