É possível dar acesso ao sudo apenas a um comando em particular?

24

Histórico: Eu tenho uma máquina de desenvolvimento com configuração LAMP. Vários desenvolvedores acessariam a máquina de tempos em tempos. Toda vez que eles fizerem alguma alteração em um arquivo de configuração, eles precisarão reiniciar o servidor apache usando sudo service apache restart ou sudo /etc/init.d/apache2 restart

A pergunta:

O que eu quero agora é que todos os desenvolvedores que acessam a máquina não tenham acesso ao sudo. Em vez disso, ele só deve conseguir executar o comando service usando o sudo e nada mais. É possível fazer isso?

    
por Ankit 27.12.2011 / 06:35

1 resposta

34

Sim.

Crie um novo grupo, web (chame como quiser)

sudo addgroup web

Adicione seu (s) desenvolvedor (es) ao grupo da web (use seu nome de login).

sudo adduser your_developer_user web

Em seguida, execute sudo visudo -f /etc/sudoers.d/somefile (use um nome significativo em vez de somefile ).

Adicione uma linha (use o caminho completo do comando):

%web ALL=(ALL) /usr/bin/service apache2 *

Os desenvolvedores podem então executar

sudo service apache

usando sua senha de login.

NÃO adicione seu usuário administrador ao grupo da Web.

Veja man sudoers para informações adicionais

    
por Panther 27.12.2011 / 06:48