Eu tenho um bash
script 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 solicitar uma senha e não quero usar o arquivo sudoers . Eu gostaria de evitar o uso de sudo ou su .
Isso é possível?
bash
permissions
Stefan
fonte
fonte
Respostas:
Se não fosse um script bash, mas um aplicativo regular, você daria a propriedade dele para fazer root e definir o bit setuid no aplicativo. Depois da execução, o usuário efetivo sob o qual o aplicativo está executando é root. Devido a questões de segurança, no entanto, isso é proibido em muitos sistemas para scripts de shell. Esta pergunta aqui no unix.stackexchange.com trata de maneiras de superar isso.
fonte
Use sudo. Se você não quiser ligar
sudo /path/to/myscript
, escreva um invólucro de uma linhaexec sudo /path/to/myscript "$@"
. Consulte Permitir setuid em scripts de shell , particularmente a resposta de Maciej Piechotka sobre o uso do sudo e minha discussão mais geral sobre programas setuid .fonte
sudo
.