it-swarm-es.tech

Cómo hacer que un programa se ejecute con privilegios de root sin usar su o sudo

Tengo un script bash que debe ejecutarse con privilegios de root , pero debe ser invocado por el usuario normal.

La parte difícil es que el script no debería pedir una contraseña y no quiero usar el archivo sudoers. Me gustaría evitar usar Sudo o s = .

Es posible?

8
Stefan

Si no fuera un script bash sino una aplicación normal, le daría la propiedad a root y establecería el bit setuid en la aplicación. Luego, al ejecutarse, el usuario efectivo bajo el que se ejecuta la aplicación es root. Sin embargo, debido a problemas de seguridad, esto está prohibido en muchos sistemas para los scripts de Shell. Esta pregunta aquí en unix.stackexchange.com maneja formas de superar esto.

9
fschmitt

Usa Sudo. Si no quiere tener que llamar a Sudo /path/to/myscript, escriba un contenedor de una línea exec Sudo /path/to/myscript "[email protected]". Vea Permitir setuid en scripts de Shell , particularmente Respuesta de Maciej Piechotka sobre el uso de Sudo y mi discusión más general sobre programas setuid .