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?

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.

  • sudo chown - prevenir ../
  • Por que não sudo -E realmente preservair meu ambiente?
  • Erro de análise no file de sudoers
  • É possilbe usair variables ​​de ambiente nas regras de sudoers?
  • A melhor maneira de executair o command SSH remoto que requer raiz, mas não como root
  • Como transmitir alias através do sudo
  • Linux - use "su -", mas mantenha o diretório atual
  • Onde os relatórios do sudoer vão?
  • Problemas ao monitorair um FS mount com Nagios via sudo