Criei um pequeno script como usuário root...
#!/bin/bash
cat /etc/shadow
e defina o bit setuid e coloque-o na pasta guest. Quando executei o script como guest , ele mostrou permissão negada. Por quê? Eu tinha o bit root setuid definido nele, que deveria executá-lo com os privilégios de root, pois o usuário root criou o script.
A razão pela qual isso não funciona é que o bit SUID é ignorado em scripts interpretados. Se você escrevesse um programa em C que executasse o mesmo comando, funcionaria.