Primeiro, crie uma cópia em um local a partir do qual você possa executá-la (por exemplo, sistemas de arquivos montados com noexec
não qualificam). Isso é /tmp/
no meu exemplo.
sudo cp /bin/sleep /tmp/
(usei sudo
para garantir que a cópia pertença a root
desde o início; isso me salvará sudo chown …
depois). O seguinte comando define o bit setuid para o arquivo :
sudo chmod u+s /tmp/sleep
Agora, execute-o em segundo plano como um usuário comum:
/tmp/sleep 300 &
Em seguida, verifique a saída de ps
:
ps -eo pid,euser,ruser,comm | grep sleep
O resultado é euser
aponta para o proprietário do arquivo, ruser
aponta para o usuário que é executado.
Observação: ao jogar com o setuid, lembre-se ele não funciona com scripts .