web-development-kb-pt.site

Como fazer um programa rodar com privilégios de root sem usar su ou sudo

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

A parte difícil é que o script não deve pedir senha, e não quero usar o arquivo sudoers. Gostaria de evitar o uso de Sudo ou s = .

Isso é possível?

8
Stefan

Se não fosse um script bash, mas um aplicativo normal, você daria a propriedade dele para o root e definiria o bit setuid no aplicativo. Então, na execução, o usuário efetivo sob o qual o aplicativo está sendo executado é o root. Devido a questões de segurança, no entanto, isso é proibido em muitos sistemas para scripts Shell. Esta questão aqui em unix.stackexchange.com trata de maneiras de superar isso.

9
fschmitt

Use Sudo. Se você não quiser ter que ligar para Sudo /path/to/myscript, escreva um wrapper de uma linha exec Sudo /path/to/myscript "[email protected]". Veja Permitir setuid em scripts Shell , particularmente a resposta de Maciej Piechotka sobre o uso de Sudo e minha discussão mais geral sobre programas setuid .

1