script suid não está funcionando corretamente [duplicado]

2

Meu sistema operacional é o Fedora 24 e tentei testar a funcionalidade do bit suid.

Eu escrevi abaixo 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

com -rwsrw-r-x. 1 root root 249 May 21 14:45 /bin/Setuid.bash permission e -rwx------. 1 root root 432 May 21 14:45 /etc/SetUid

Agora, quando tentei o /bin/Setuid.bash como root, obtive:

Like Root Run

mas quando executamos isso com o usuário Test , encontrei:

Other User Run

bin/Setuid.bash: line 8: /etc/SetUid: Permission denied

Eu apreciaria se alguém me avisasse, onde está o meu caminho errado?

    
por Hossein Vatani 21.05.2017 / 13:45

1 resposta

3

Há muito tempo atrás, bash (e outros intérpretes de shell) haviam adicionado medidas de segurança internas novamente suid (ab) porque é / era perigoso. Perigos dos scripts da Shell da SUID

De Por que o Bash é assim: suid

Bash scripts can’t run with the suid bit set. First of all, Linux doesn’t allow any scripts to be setuid, though some other OS do. Second, bash will detect being run as setuid, and immediately drop the privileges.

This is because shell script security is extremely dependent on the environment, much more so than regular C apps.

Por fim, atualmente o bit suid é mais útil para binários executáveis. Uma maneira de executar um script / bash como esse é invocá-lo a partir de um binário compilado suid.

    
por 21.05.2017 / 13:58