Comprendiendo SUID
En este paso, comprenderás el concepto del permiso SUID y sus implicaciones.
Por lo general, cuando se ejecuta un programa en Linux, se ejecuta con los permisos del usuario actual. Sin embargo, algunos programas, como cp, requieren privilegios elevados para realizar ciertas operaciones, como copiar archivos a directorios restringidos. Para permitir que los usuarios normales ejecuten tales programas con privilegios elevados, se puede establecer el permiso SUID en el archivo ejecutable.
SUID significa "Set user ID upon execution" (Establecer el ID de usuario al ejecutar). Cuando un archivo tiene el permiso SUID establecido, se ejecuta con los permisos de su propietario, independientemente del usuario que lo ejecute. Por ejemplo, el comando cp es propiedad del usuario root y tiene el bit SUID establecido, lo que permite que cualquier usuario lo ejecute con privilegios de root.
Para verificar el permiso SUID en el comando cp y guardar la salida en un archivo, ejecuta el siguiente comando:
ls -l /usr/bin/cp > /home/labex/project/suid_cp.txt
Visualiza el contenido del archivo suid_cp.txt utilizando el siguiente comando:
cat /home/labex/project/suid_cp.txt
Salida esperada:
-rwsr-xr-x 1 root root 141832 Feb 8 2024 /usr/bin/cp
Deberías ver una s en los bits de permiso, lo que indica el permiso SUID.
Si bien el SUID puede ser útil para permitir que los usuarios normales ejecuten comandos privilegiados específicos, también puede ser explotado si el binario SUID proporciona funcionalidad para ejecutar comandos del sistema o modificar archivos.