Executando um serviço como root

Executando um serviço como root

Eu tenho um programa Java que uso para automatizar o processo de criação de configurações de VPN para clientes. O programa chama alguns scripts bash, cria e copia arquivos. Eu tenho que executá-lo como usuário root porque toda a configuração da VPN está em/etc/openvpn. Para este diretório, preciso de privilégios de root. Na mesma máquina tenho o servidor de aplicação Glassfish e ele chamará o programa Java mencionado. Glassfish é executado sob usuário não root.

Qual é a melhor e mais segura maneira de executar um programa como usuário root, é claro, sem inserir uma senha, se eu executá-lo via sudo?

Responder1

a opção mais segura seria descobrir a qual grupo o openvpn pertence e adicionar um usuário não privilegiado com acesso a ele -a maneira recomendada é criar um usuário openvpne conceda privilégios para usar openvpn usando sudo.

Adicionar o usuário sob o qual você executa este programa ao grupo (provavelmente com apenas acesso de leitura) para dar-lhe acesso ao openvpn e dar-lhe os privilégios sudo necessários (para executar o openvpn - configurações idênticas às que o usuário do openvpn usa) deve resolver o problema com segurança.

Usar root é uma maneira preguiçosa;)

Responder2

O que descobri é que, além de executar um comando como sudo sem digitar a senha, existem duas opções:

  • eco SENHA | sudo -S COMANDO
  • adicionando a seguinte linha ao /etc/sudoers

    nome de usuário ALL=(ALL) NOPASSWD: COMMAND

Observe que esta linha deve estar depois de todas as definições de grupo. Você pode verificar quais privilégios sudo você possui usando sudo -l. Para este caso, isso produz:

(ALL) ALL
(ALL) NOPASSWD: COMMAND

Isso significa que para todos os comandos será necessária senha, exceto para o COMMAND. Se colocássemos username ALL=(ALL) NOPASSWD: COMMANDantes das definições de grupo, sudo -lproduziríamos:

(ALL) NOPASSWD: COMMAND
(ALL) ALL

Isso ainda exigiria uma senha para o COMMAND, já que (ALL) ALLé especificada após a linha NOPASSWD.

informação relacionada