Eu tenho um servidor rodando Debian Squeeze com as últimas atualizações. Eu tentei configurar o arquivo sudoers
para permitir que o usuário www-data
execução de um script de shell específico como um usuário específico. Eu usei visudo
para isso e adicionei a linha:
www-data ALL=(img) NOPASSWD: /path/to/script/imgsync.sh
Então eu tentei chamá-lo como usuário www-data (eu supri da raiz para www-data primeiro):
sudo -u img /path/to/script/imgsync.sh
Para minha surpresa, ele ainda pede uma senha:
[sudo] password for www-data:
Eu esperava que NOPASSWD:
cuidasse disso?
O que realmente me intriga: Eu tenho outro servidor com a mesma configuração, onde funciona sem senha. Além disso, tenho outras permissões semelhantes no mesmo servidor que também funcionam sem senha.
Eu até adicionei a linha
Defaults:www-data !authenticate
com visudo (só para testar, não quero isso). Então, quando tentei novamente, recebi a mensagem de erro (contraditória):
Sorry, user www-data is not allowed to execute
'/path/to/script/imgsync.sh' as img on servername.
Como posso fazer com que seja executado sem ter que fornecer uma senha (e sem dar mais direitos a www-data)?