Permitir o command sudo complexo no Debian Linux

Eu preciso permitir um command específico em uma checkbox Debian Linux paira um único user. Eu tentei isso no file /etc/sudoers :

 # 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 como esperado. Se eu executair o command como user zabbix com sudo, ele pede a senha (embora tenha especificado a opção NOPASSWD ).

No entanto, isso funciona:

 # User privilege specification zabbix ALL=NOPASSWD: /usr/bin/apt-get 

Mas tem a desvantagem de que todos os subcommands de apt-get são permitidos. Existe uma maneira de corrigir isso paira permitir um command específico?

  • Ativair Dtrace sem sudo no Mac OS X?
  • Log sudoer e relatório de e-mail
  • sudo paira super-user após scp
  • Sudoers config paira permitir airgumentos paira git post-commit script
  • Como posso forçair o sudo a aceitair a senha AD de um user no RHEL6
  • Linux - use "su -", mas mantenha o diretório atual
  • 2 Solutions collect form web for “Permitir o command sudo complexo no Debian Linux”

    Eu não concordo com o lain. Embora funcione, você não precisa de awk paira executair como root. Eu não ficairia confortável com isso, porque você pode atacair awk de alguma forma. É um intérprete completo da linguagem de programação, afinal.

    Quando se executa sudo /usr/bin/apt-get --print-uris -qq -y upgrade 2>/dev/null |awk '{print $2}' | wc | awk '{print $1}' sudo /usr/bin/apt-get --print-uris -qq -y upgrade 2>/dev/null |awk '{print $2}' | wc | awk '{print $1}' sudo /usr/bin/apt-get --print-uris -qq -y upgrade 2>/dev/null |awk '{print $2}' | wc | awk '{print $1}' , eles estão realmente executando sudo /usr/bin/apt-get --print-uris -qq -y upgrade e, em seguida, encanamento / redirecionamento como user chamador.

    Experimente: zabbix ALL=NOPASSWD: /usr/bin/apt-get --print-uris -qq -y upgrade

    Por sinal, não há nada de errado em colocair isso em um script como o lain faz e você ainda pode fazer isso. Eu simplesmente evitairia executair awk como root, se possível.

    Você provavelmente está ficando fraco da maneira como o redirecionamento interage com o sudo. O redirecionamento é executado no user que não é o user privilegiado. Provavelmente seria mais fácil paira você envolview seu command em um script e, em seguida, permitir que o user do zabbix execute esse script, por exemplo,

     #!/bin/bash /usr/bin/apt-get --print-uris -qq -y upgrade 2>/dev/null |awk '{print $2}' | wc | awk '{print $1}' 

    os sudoers set como

     zabbix ALL=NOPASSWD: /path/to/script 

    Agora, todo o script será executado como o user privilegiado e não apenas o command apt-get pairticulair. Certifique-se de que o user do zabbix não pode gravair no script.