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 chmod
comando, 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 uid
y gid
del usuario que lo inició.
1. El setuid
bit
Este bit está presente para archivos que tienen permisos de ejecución. El setuid
bit 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 setgid
bit 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 setuid
permiso 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 setuid
bit, use el siguiente comando.
chmod u+s
Para quitar el setuid
bit, use el siguiente comando.
chmod u-s
2. El setgid
bocado
Afecta tanto a los setgid
archivos 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 setgid
bit, 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 setgid
bit, use el siguiente comando.
chmod g+s
Para quitar el setgid
bit, use el siguiente comando.
chmod g-s
Riesgos de seguridad
De setuid
hecho, 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 setuid
bit 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