Por que esse exemplo de setUID não funciona? [duplicado]

1

Estou aprendendo sobre setuid e setgid em que o usuário que está executando o script herdará a permissão do proprietário durante a execução do script. Para testar isso, Eu criei um bash como usuário fiverr em /home/fiverr/test.sh com a permisão 4755.

rwsr-xr-x 1 fiverr fiverr 39 Dec  6 13:47 /home/fiverr/test.sh

Ele contém o seguinte:

#!/bin/bash
touch /home/fiverr/raza.txt

Eu me loguei como eu (raza) e tente executá-lo, mas recebo permissão negada. Como vem?

touch: cannot touch ‘/home/fiverr/raza.txt’: Permission denied
    
por Raza 06.12.2015 / 19:54

1 resposta

0

Tentando setuid um script bash não vai funcionar por causa de medidas de segurança. No passado setuid / setgid funcionalidade foi tão abusada para escalar privilégios que hoje em dia existem várias restrições, incluindo o bash binário e na extensão bash scripts não herdando / desistindo privilégios setuid / setgid, e apenas root sendo capaz de criar arquivos setuid em moderno distribuições linux.

Se você quiser rodá-lo, você precisa configurar o setuid antes de usar um wrapper binário compilado em C, ou fazê-lo em um binário.

Se no Debian, você pode setuid uma cópia de / bin / dash e invocar o que você quer de lá.

    
por 06.12.2015 / 20:06