Quiero poder reiniciar los servicios desde un script php. ejecutándose bajo la cuenta de usuario www.
¿Cuál es la forma preferida de realizar estas acciones?
Reconozco que puedo crear un archivo con comandos que'd, leídos por CRON, pero la solución pica.
En lo que estoy pensando es en un pequeño servicio, que se ejecuta bajo root, que permite "métodos" predefinidos para que no se puedan ejecutar acciones raíz arbitrarias.
¿Alguna herramienta para esto?
linux
security
web-server
root
usuario65297
fuente
fuente
Respuestas:
Podrías reinventar la rueda, pero, sinceramente, utilizo sudo sin contraseña para esto. Por ejemplo, mi sistema de monitoreo necesita poder ejecutar un comando para verificar el RAID de hardware. Esto requiere privilegio de root, pero no quiero ejecutar todo el sistema de monitoreo como root, así que en su lugar tengo
sudoers
una línea que dicey luego ejecute el comando
sudo /usr/lib/nagios/plugins/check_md_raid
como usuario de monitoreo, cuando necesito verificar el RAID.Podrías tener una línea de sudoers que decía
entonces haga que PHP ejecute
sudo /etc/rc.d/init.d/myservice restart
.fuente
Eche un vistazo a sudo : permite especificar acciones que se pueden realizar como otro usuario (root en su caso).
Por ejemplo, puede agregar a su
/etc/sudoers
(no edite el archivo directamentevisudo
)Consulte
man sudo
los detalles y la sintaxis del archivofuente
/etc/sudoers
archivo. Si de alguna manera es sintácticamente incorrecto, cambiarlo de nuevo es una pesadilla b / c que necesitassudo
volver a usar , pero no puedes b / c simplemente eliminaste sudo. Termina teniendo que usar un CD / DVD de rescate y montar la partición manualmente.shudders
? Es cierto que el visudo hace controles de cordura, pero no ayudan después de que el daño está hecho: P