Eu preciso permitir um comando específico em uma caixa Debian Linux para um único usuário. Eu tentei isso no /etc/sudoers
arquivo:
# User privilege specification
zabbix ALL=NOPASSWD: /usr/bin/apt-get --print-uris -qq -y upgrade 2>/dev/null |awk '{print $2}' | wc | awk '{print $1}'
Isso não funciona conforme o esperado. Se eu executar o comando como usuário zabbix com sudo, ele solicitará a senha (embora eu tenha especificado a NOPASSWD
opção).
No entanto, isso funciona:
# User privilege specification
zabbix ALL=NOPASSWD: /usr/bin/apt-get
Mas tem a desvantagem de que todos os subcomandos apt-get
são permitidos. Existe uma maneira de corrigir isso para permitir apenas um comando específico?
Você provavelmente está se enganando com a maneira como o redirecionamento interage com o sudo. O redirecionamento é realizado no usuário que chama e não no usuário privilegiado. Provavelmente seria mais fácil envolver seu comando em um script e permitir que o usuário do zabbix execute esse script, por exemplo
os sudoers definidos como
Agora, todo o script será executado como usuário privilegiado e não apenas o comando apt-get específico. Certifique-se de que o usuário do zabbix não possa gravar no script.
fonte