Respuestas:
Respuesta corta:
Utilizando visudo, agregue lo siguiente a su archivo sudoers, reemplazando el nombre de usuario con el nombre de usuario apropiado:
username ALL = /etc/init.d/apache2
Si desea no tener que escribir una contraseña antes de hacer esto, use lo siguiente:
username ALL = NOPASSWD: /etc/init.d/apache2
Después de esto, el usuario 'nombre de usuario' puede ejecutar sudo /etc/init.d/apache2 start(o detener, reiniciar, etc.)
Respuesta larga: es probable que desee configurar un usuario separado para esto si aún no lo ha hecho, y luego configurar el archivo / etc / sudoers para permitir que un usuario o grupo ejecute el comando que desea.
Por ejemplo, para permitir que el usuario 'ben' ejecute todos los comandos como root solicitando una contraseña, debe hacer lo siguiente:
ben ALL= ALL
Para permitir que 'ben' ejecute solo un comando (como say, rm), debe hacer lo siguiente:
ben ALL= /bin/rm
Si está ejecutando un script como usuario y no desea solicitar una contraseña, deberá usar la opción 'NOPASSWD' de esta manera:
ben ALL=NOPASSWD: /bin/commandname options
Puede hacer lo mismo para los grupos con el prefijo de los nombres de los grupos con un signo de porcentaje, así:
%supportstaff ALL= NOPASSWD: /bin/commandname
visudocomando realiza comprobaciones de seguridad en sus ediciones para que no rompa el comando sudo/ supor accidente: unix.stackexchange.com/a/27595/61349
Respuesta corta: sudo.
La llamada sería similar a la siguiente: sudo /etc/init.d/apache2 restart
Lo más fácil es usarlo visudopara configurar el archivo / etc / sudoers. Ver man sudoersy man visudopara más detalles.
También puede lograr esto escribiendo un contenedor en apache2ctl, asignando la propiedad del grupo a un grupo de administración web y configurando el bit suid. Esta es una solución menos general que visudo, pero permite limitaciones personalizadas en las capacidades del usuario y la verificación de errores.
Escribí esta herramienta para mis propias necesidades y la he compartido en github: https://github.com/josiahjohnston/ltd_apache2ctl
usernamepuede restringir a un subconjunto de parámetros? Decirstartrestartpero nostop?