domingo, 8 de janeiro de 2012

"Bit s" e Shell-script

Como contornar o problema do 'bit s' ser desabilitado por script? [1]

1 - Criar um arquivo chamado mypasswd.c com o seguinte conteúdo:
#include

int main(){
setuid(0);
return(system("/usr/local/lib/mypasswd/mypasswd.sh"));
}
2 - O script gerado deverá ser chamado mypasswd.sh
3 - Na instalação (target install), deve-se copiar o script que vocês
fizeram para o /usr/local/lib/mypasswd/mypasswd.sh; compilar o código
C acima, gerando o binário mypasswd; copiar o binário mypasswd para o
/usr/local/bin/mypasswd, sentando as permissões corretas.
4 - na remoção, remover também o binário.

Para compilar: gcc -o mypasswd mypasswd.c

Mas vejam que dessa forma [com a presença do setuid()] alguns comandos como whoami podem não retornar o valor que vocês esperavam... Daí a dica é procurar nas
variáveis de ambiente.

[1] Veja aqui que o 'bit s' é desabilitado em scripts por motivo de segurança.

PS: eu não testei isso aqui!!

Nenhum comentário:

Postar um comentário