Como evitar a especificação do caminho completo no arquivo sudoers?

4

Estou tentando adicionar uma entrada NOPASSWD para sudotest.sh (ou qualquer script / binário que exija sudo) no meu arquivo /etc/sudoers (no servidor LTS do Ubuntu 12.04), mas para que isso funcione, eu deve especificar o caminho completo. A entrada a seguir funciona bem:

%jenkins ALL=(ALL)NOPASSWD:/home/vts_share/test/sudotest.sh

O problema é que o script pode ser movido para um diretório diferente. Essa parece ser uma ótima oportunidade de usar o curinga * no caminho (ou seja, /*/sudotest.sh ) para que meu script possa estar em qualquer diretório, mas o manual informa que curingas não corresponderão ao caractere / quando usado em um caminho . Eu confirmei que isso não funciona.

Eu sei que posso usar a palavra ALL no lugar do meu script, mas isso significa que não há solicitação de senha para nenhum comando que pareça inseguro.

Como posso resolver isso?

    
por s g 02.07.2013 / 07:45

1 resposta

5

Colocar o ALL em vez do seu script não permitirá que ele seja executado, a menos que ele possa ser encontrado em um PATH configurado adequadamente.

Para executar seu comando sem fornecer um caminho completo, ele precisa estar em um diretório especificado pela variável PATH.

Para o sudo, depende de como o ambiente é configurado para qual PATH é usado.

Se a variável secure_path estiver configurada em sudoers, os comandos deverão estar localizados nos diretórios dentro dela.

Você pode adicionar usuários ao exempt_group e usar o próprio PATH.

    
por 02.07.2013 / 09:20