Permitir que o serviço systemd seja iniciado ou interrompido pelo usuário não sudo

3

Eu tenho uma configuração de servidor de minecraft no meu servidor doméstico e quero permitir que qualquer um dos meus amigos possa fazer o ssh e iniciar o servidor. No entanto, não quero necessariamente dar-lhes acesso ao sudo.

Existe alguma maneira de eu marcar um determinado serviço como sendo capaz de ser iniciado ou interrompido por qualquer pessoa ou por membros de um grupo específico?

    
por Ryan Stull 31.01.2017 / 07:43

1 resposta

4

Absolutamente. Embora sudo esteja associado à execução de qualquer comando como root , é realmente um sistema flexível que permite um controle refinado de quem tem acesso para executar comandos específicos.

Por exemplo, você pode criar um grupo chamado minecraftstarters e adicionar todos os seus amigos a ele. Em seguida, você pode definir uma regra sudo , que permite que qualquer pessoa no grupo minecraftstarters inicie ou reinicie o Minecraft, mas não possa usar sudo para qualquer outra coisa.

Em seguida, em /etc/sudoers.d/minecraft , você adicionaria uma sintaxe como esta:

Cmnd_Alias MINECRAFT_CMDS = /bin/systemctl start minecraft, /bin/systemctl restart minecraft
%minecraftstarters ALL=(ALL) NOPASSWD: MINECRAFT_CMDS

Agora você definiu alguns comandos que o grupo minecraftstarters pode executar com sudo (e sem exigir um prompt de senha adicional).

Dica: use visudo -f /etc/sudoers.d/minecraft para editar o arquivo. Ele verificará a sintaxe antes de salvá-la, evitando o estado infeliz em que você quebra sua configuração sudo , portanto, sudo não funciona.

    
por Mark Stosberg 31.01.2017 / 20:51