Tentando encontrar a melhor maneira de permitir que usuários comuns iniciem, parem, reiniciem e verifiquem os status de alguns servidores de back-end, como Apache, Bind, MariaDB. A resposta aceita:
%users2 keep ALL=NOPASSWD: /sbin/service httpd,/etc/init.d/httpd,/usr/sbin/apache2ctl
em o uso de sudoers para permitir que usuários não privilegiados reiniciem o apache não funciona mais. Ele funciona somente se eu remover o keep
e indicar o comando exato como:
%users2 ALL=NOPASSWD: /sbin/service httpd restart
Então, eu já tenho uma solução para a minha pergunta, mas o que eu não gosto é que eu tenho que listar todas as versões possíveis dos comandos para cada servidor de back-end como:
%users2 ALL=NOPASSWD: /sbin/service httpd stop, /sbin/service httpd start, /sbin/service httpd restart, /sbin/service httpd status, /sbin/service mariadb stop, /sbin/service mariadb start, /sbin/service mariadb restart, /sbin/service mariadb status, /sbin/service named stop, /sbin/service named start, /sbin/service named restart, /sbin/service named status
que não é apenas inconveniente, mas também está por trás da maneira recomendada pelos sistemas baseados no Fedora de gerenciar serviços de back-end com o comando systemctl
em vez de service
. Mas infelizmente não consegui configurar o arquivo /etc/sudoers
para fazer systemctl
funcionar.
Então, minha pergunta é qual é a melhor maneira de permitir que usuários regulares reiniciem alguns servidores back-end nos sistemas CentOS 7.x?