Linux: como dar permissão ao usuário para reiniciar o apache?

33

Eu tenho um script em execução em um usuário não-root que, sob certas condições, deve reiniciar o httpd do apache.

Qual seria a maneira mais simples de permitir que o usuário faça isso?

Estou usando o Ubuntu Server 8.04 LTS.

    
por itsadok 30.09.2009 / 08:21

3 respostas

78

Resposta curta:

Usando visudo , adicione o seguinte ao seu arquivo sudoers, substituindo o nome de usuário pelo nome de usuário correto:

username ALL = /etc/init.d/apache2 

Se você não quiser digitar uma senha antes de fazer isso, use o seguinte:

username ALL = NOPASSWD: /etc/init.d/apache2 

Depois disso, o usuário 'username' pode executar sudo /etc/init.d/apache2 start (ou parar, reiniciar, etc)

Resposta longa: Você provavelmente desejará configurar um usuário separado para isso, se ainda não tiver feito, e então configurar o arquivo / etc / sudoers para permitir que um usuário ou grupo execute o comando desejado.

Por exemplo, para permitir que o usuário 'ben' execute todos os comandos como root solicitando uma senha, você faria o seguinte:

ben ALL= ALL

Para permitir que 'ben' execute apenas um comando (como por exemplo, rm ), você faria o seguinte:

ben ALL= /bin/rm 

Se você estiver executando um script como usuário e não quiser solicitar uma senha, use a opção 'NOPASSWD' da seguinte forma:

ben ALL=NOPASSWD: /bin/commandname options

Você pode fazer a mesma coisa para grupos prefixando nomes de grupos com um sinal de porcentagem, assim:

%supportstaff          ALL= NOPASSWD: /bin/commandname 
    
por 30.09.2009 / 08:54
1

Resposta curta: sudo.

A chamada seria semelhante à seguinte: sudo /etc/init.d/apache2 restart

O mais fácil é usar visudo para configurar o arquivo / etc / sudoers. Veja man sudoers e man visudo para detalhes.

    
por 30.09.2009 / 08:47
0

Você também pode fazer isso escrevendo um wrapper no apache2ctl, atribuindo a propriedade do grupo a um grupo de administração da Web e definindo o bit suid. Essa é uma solução menos geral do que a visudo, mas permite limitações personalizadas nas habilidades do usuário e na verificação de erros.

Eu escrevi essa ferramenta para as minhas próprias necessidades e a compartilhei no github: link

    
por 30.09.2015 / 22:14