A melhor maneira de dar ao usuário alguns privilégios de root em arquivos e comandos apach específicos

0

Eu escrevi um script de shell ( este ) para iniciar um novo projeto de website. Tem que ser executado por um usuário (não é uma coisa que ele tenha privilégios de root porque esse usuário sou eu).

Como você vê, o usuário tem que ser capaz de:

  1. editar /etc/hosts ;
  2. Adicione novos arquivos a /etc/apache2/sites-available/ ;
  3. Crie um novo diretório (com ln) em /var/www/ ;
  4. Execute o comando a2ensite ;
  5. Execute o comando service apache2 reload ;

Todas essas ações precisam ser executadas como root. Mas é possível dar direitos para fazer isso com um usuário comum? E para isso, devo alterar o proprietário desses arquivos ou o grupo do usuário ou ambos e como posso fazer isso?

    
por fauve 09.10.2016 / 18:28

1 resposta

1

Isso normalmente é feito usando sudo . Nos sistemas modernos, você pode adicionar um arquivo a /etc/sudoers.d adicionando novos privilégios.

# Rules for running am apache script.
User_Alias APACHE = yourUser
Cmnd_Alias APACHE = /usr/local/sbin/your_script
APACHE ALL = NOPASSWD: APACHE 

Como você é o usuário, adicione sua conta ao grupo definido em /etc/sudoers para administradores. Nos sistemas Debian ou Ubuntu isto é admin . Outras distribuições usam valores diferentes. Esta é a definição do Ubuntu para o grupo admin.

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

sudo vem com páginas de manual detalhadas. Você pode querer rever as man pages para sudo , sudoers e visudo . Se você tiver as páginas man indexadas, você pode obter uma lista de man pages relacionadas ao sudo com o comando man -k sudo .

    
por 09.10.2016 / 23:23