Como conceder direitos sudo apenas para arquivos de script específicos?


17

Eu gostaria que um usuário tivesse direitos sudo (sem verificação de senha) para alguns scripts de shell em um diretório específico (no meu caso /usr/local/tomcat7/bin) e em nenhum outro lugar. Qual é a maneira mais simples de conseguir isso?

Algo assim /etc/sudoersnão parecia funcionar:

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin

Respostas:


22

Eu acho que você está quase lá. coloque um /no final da especificação do seu diretório

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/

Na página do manual sudoers

Um diretório é um nome de caminho completo que termina em '/'. Quando você especifica um diretório em uma Cmnd_List, o usuário poderá executar qualquer arquivo nesse diretório (mas não em nenhum subdiretório).


Obrigado (a ambos os respondentes), conseguiu! Nota to self: necessidade de invocar os scripts diretamente (por exemplo sudo catalina.sh stop) - isso não funciona: sudo sh catalina.sh stop.
31511 Jonik

7

Adicione uma barra '/' ao final do caminho.

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.