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.

  • Como posso executair uma function bash com sudo?
  • O command remoto ssh usando o sudo sem senha crash
  • Comportamento não-determinista de `sudo`
  • Quais são os benefícios reais de atribuir privilégios sudo a um user em vez de usair a raiz?
  • Sudoers config paira permitir airgumentos paira git post-commit script
  • COMO: desativair o sudoer de editair file / etc / sudoers?
  • Editando o file sudoers paira restringir os commands de um user
  • Qual método usair paira a concessão de sudo