
Mi sistema operativo es Fedora 24 e intenté probar la funcionalidad del bit suid.
Escribí a continuación bash como Setuid.bash:
#!/bin/bash
if [ $USER = 'root' ]
then
echo "Like Root Run"
echo "Root User Add in " $(date) >> /etc/SetUid
else
echo "Other User Run"
echo $USER "User Add in " $(date) >> /etc/SetUid
fi
con -rwsrw-r-x. 1 root root 249 May 21 14:45 /bin/Setuid.bash
permiso y-rwx------. 1 root root 432 May 21 14:45 /etc/SetUid
Ahora, cuando probé /bin/Setuid.bash
como root obtuve:
Me gusta ejecutar raíz
pero cuando ejecuta eso conPruebausuario que encontré:
Otro usuario ejecuta
bin/Setuid.bash: línea 8: /etc/SetUid: Permiso denegado
Agradecería que alguien me dijera dónde está mi camino equivocado.
Respuesta1
Hace mucho tiempo, bash
(y otros intérpretes de shell) agregaron medidas de seguridad integradas contra el (ab)uso suid porque es/era peligroso.Peligros de los scripts de SUID Shell
Los scripts Bash no se pueden ejecutar con el bit suid configurado. En primer lugar, Linux no permite configurar ningún script, aunque algunos otros sistemas operativos sí lo hacen. En segundo lugar, bash detectará que se ejecuta como setuid e inmediatamente eliminará los privilegios.
Esto se debe a que la seguridad del script de shell depende en gran medida del entorno, mucho más que las aplicaciones C normales.
En última instancia, hoy en día el bit suid es más útil para archivos binarios ejecutables. Una forma de ejecutar un script/bash como ese es invocarlo desde un binario compilado suid.