Actualmente estoy desarrollando una aplicación que puede ejecutar comandos automáticamente en varios servidores.
Si cambio la configuración de un servicio, necesito reiniciarlo (o recargarlo) y, por lo tanto, algunos de los comandos necesitan permiso de root. Para que funcione, cifré y guardé la contraseña del usuario en un archivo de texto para usarla durante los comandos sudo. Creo que se trata de una amenaza importante, pero tampoco quería que la aplicación se ejecutara con permiso de root.
¿Algunas ideas?
Respuesta1
Puede limitar qué comandos puede ejecutar el usuariosudo. Además, podría proporcionar unSIN CONTRASEÑAopción ensudoersarchivo en el contexto de ese usuario en lugar de utilizar la "función" de contraseña cifrada.
A continuación se muestra un ejemplo para permitir que un usuario sin privilegios reinicie el sistema.iptablesservicio:
geewid ALL = (root) NOPASSWD: /sbin/service iptables restart, /sbin/service iptables reload
La lista de comandos está separada por comas...
También podrías usarCmnd_Aliascaracterística:
Cmnd_Alias FOOBAR = /sbin/service iptables restart, /sbin/service iptables reload
geewid ALL = (root) NOPASSWD: FOOBAR