script suid não está funcionando corretamente

script suid não está funcionando corretamente

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

Escrevi abaixo do 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

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

Agora, quando tentei /bin/Setuid.bashcomo root, obtive:

Como Root Run

mas quando executar isso comTesteusuário que encontrei:

Outra execução de usuário

bin/Setuid.bash: linha 8: /etc/SetUid: Permissão negada

Agradecerei se alguém me informar, onde está o meu caminho errado?

Responder1

Há muito tempo, bash(e outros intérpretes de shell) adicionaram medidas de segurança integradas contra o uso de suid (ab) porque é/era perigoso.Perigos dos scripts SUID Shell

DePor que Bash é assim: suid

Os scripts Bash não podem ser executados com o bit suid definido. Primeiro de tudo, o Linux não permite que nenhum script seja setuid, embora alguns outros sistemas operacionais permitam. Segundo, o bash detectará a execução como setuid e eliminará imediatamente os privilégios.

Isso ocorre porque a segurança do script shell é extremamente dependente do ambiente, muito mais do que os aplicativos C normais.

Em última análise, hoje em dia 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.

informação relacionada