
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.bash
permissão e-rwx------. 1 root root 432 May 21 14:45 /etc/SetUid
Agora, quando tentei /bin/Setuid.bash
como 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
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.