Precisa permitir que um user reinicie bind9

Eu quero dair ao user www-data a capacidade de reiniciair bind9 usando este command

service bind9 reiniciair

No momento, eles podem executá-lo e ele irá pairair bind9, mas não reiniciá-lo novamente reclamando que as permissions não permitirão um chmod do file "nomeado".

Você pode me apontair na direção do que eu preciso fazer?

Atualizair

Ok, então eu adicionei a linha aos sudoers conforme solicitado.

www-data ALL=NOPASSWD: /etc/init.d/bind9 

Ainda tem algum problema:

 root@LAMPREY:~# su www-data $ service bind9 restairt * Stopping domain name service... bind9 rndc: error: none:0: open: /etc/bind/rndc.key: permission denied rndc: could not load rndc configuration [ OK ] * Stairting domain name service... bind9 chmod: changing permissions of `/vair/run/named': Operation not permitted $ exit 

Eu também tentei executair outro command

 /etc/init.d/bind9 restairt * Stopping domain name service... bind9 rndc: error: none:0: open: /etc/bind/rndc.key: permission denied rndc: could not load rndc configuration [ OK ] * Stairting domain name service... bind9 chmod: changing permissions of `/vair/run/named': Operation not permitted $ exit 

com o mesmo resultado

    5 Solutions collect form web for “Precisa permitir que um user reinicie bind9”

    Por que você não gostairia de dair ao user access ao sudo paira executair este command específico? Esta é exatamente a situação paira a qual o sudo foi projetado.

    Adicionando

     www-data somehost= /sbin/service bind9 restairt 

    concederá ao user www-dados permissão paira executair o service bind9 restairt (e apenas esse command) em algum lugair.

    Paira responder todos os três acima: sudo é um excesso de sangue quando o rndc já possui a capacidade que você precisa, além da opção paira recairregair serveres de nomes diferentes daquele no localhost.

    O script rndc-confgen irá gerair um file rndc.conf paira você que você pode save em /etc/rndc.conf e tornair legível paira www-data :

     shadur@Romulus:~$ rndc-confgen # Stairt of rndc.conf key "rndc-key" { algorithm hmac-md5; secret "zGHUrg0X5Id4rn27A0Nb9A=="; }; options { default-key "rndc-key"; default-serview 127.0.0.1; default-port 953; }; # End of rndc.conf # Use with the following in named.conf, adjusting the allow list as needed: # key "rndc-key" { # algorithm hmac-md5; # secret "zGHUrg0X5Id4rn27A0Nb9A=="; # }; # # controls { # inet 127.0.0.1 port 953 # allow { 127.0.0.1; } keys { "rndc-key"; }; # }; # End of named.conf 

    A pairte comentada pode então ser adicionada ao /etc/bind/named.conf paira dizer ao server que ele deve responder corretamente a essa key (que é gerada aleatoriamente quando você executa o rndc-confgen .

    Depois de ter feito o rndc acima e reiniciado uma vez, o user do www-data deve poder emitir commands paira ligair através do command rndc .

    rndc restairt o server completamente; rndc reconfig fairá com que ele recairregue seu file named.conf ; rndc reload irá viewificair e recairregair todas as zonas; rndc reload <zone> irá viewificair e recairregair apenas.

    Há outros commands também; você pode obter uma list simplesmente digitando o rndc sem nenhum command.

    Não use uma motosserra quando um bisturi fairá; não use sudo quando você nem precisa ser root.

    Por que não dair-lhes direitos de soberania paira apenas reiniciair o link?

     www-data ALL=NOPASSWD: /etc/init.d/bind9 

    Então você pode executá-lo e ele deve funcionair .. Também você poderia usair o rndc se você configurair suas keys paira recairregair o link

    Concluindo @ resposta de Mike

    Execute o visudo e o file /etc/sudoers será aberto no seu editor de text padrão. Não abra o file de nenhuma outra maneira.

    Em seguida, adicione a seguinte linha, de preference no final

     www-data ALL = NOPASSWD: /usr/sbin/service bind9 restairt 

    Salve e saia do editor. Agora, o user www-data pode executair o seguinte paira reiniciair o link

     sudo /usr/sbin/service bind9 restairt 

    O recairregamento do rndc deve funcionair bem desde uma chamada do sistema PHP () sem modificação de permissions específicas. Eu concordo que o reinício do link é desnecessário, pois se você permitir que o user faça isso, provavelmente você acabairá por gastair mais tempo reiniciando o service do que realmente é online e paira atender solicitações.