Eu queria permitir que usuários não root específicos iniciassem / interrompessem determinados serviços systemd no CentOS7. Mas não houve sorte nos passos que tentei até agora. Aqui está o que eu tentei.
Eu adicionei os detalhes abaixo no arquivo sudoers, em que testsudo é um grupo de usuários e alguns usuários foram adicionados a esse grupo.
## Manage specific systemd services
Cmnd_Alias SYSTEMD = /bin/systemctl start httpd, /bin/systemctl stop httpd, /bin/systemctl restart httpd
## Allows nfam group to run init-system commands using the SYSTEMD command alias
%testsudo ALL=NOPASSWD: SYSTEMD
Detalhes do grupo e usuários adicionados:
# cat /etc/group | grep testsudo
testsudo:x:1009:userone,usertwo,userthree
Agora, se eu tentar iniciar o serviço usando qualquer um dos usuários (que faz parte do grupo testsudo), recebo uma mensagem de autenticação obrigatória.
[userone@msgdroid ~]$ systemctl start httpd
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Multiple identities can be used for authentication:
1. admin
2. priya
3. sekar
4. gokul
5. ravi
6. murali
Choose identity to authenticate as (1-6):
Update1:
Eu também usei sudo na frente do comando, mas não funciona nem um pouco.
$ sudo systemctl start httpd
[sudo] password for userone:
Sorry, user userone is not allowed to execute '/bin/systemctl start httpd' as root on webapp.
Update2:
- Apenas uma correção, o servidor só pode ser acessado via chaves SSH e não via senha. Isso será um problema?