Como obter um programa rodando com privilégios de root sem usar su ou sudo

8

Eu tenho um script bash que precisa ser executado com privilégios de root , mas deve ser chamado pelo usuário normal.

Parte difícil é que o script não deve pedir uma senha, e eu não quero usar o arquivo sudoers . Gostaria de evitar o uso de sudo ou su .

Isso é possível?

    
por Stefan 08.10.2010 / 09:42

2 respostas

9

Se não fosse um script bash, mas um aplicativo regular, você daria a propriedade dele para fazer o root e definir o bit setuid no aplicativo. Em seguida, após a execução, o usuário efetivo no qual o aplicativo está sendo executado é raiz. Devido a preocupações de segurança, no entanto, isso é em muitos sistemas proibidos para scripts de shell. Esta questão aqui no unix.stackexchange.com trata de como superar isso .

    
por 08.10.2010 / 09:49
1

Use o sudo. Se você não quiser chamar sudo /path/to/myscript , escreva um wrapper de uma linha exec sudo /path/to/myscript "$@" . Consulte Permitir o setuid em scripts de shell , particularmente A resposta de Maciej Piechotka ao usar o sudo e minha discussão mais geral sobre programas setuid .

    
por 08.10.2010 / 22:29