Tengo un bash
script que necesita ejecutarse con privilegios de root , pero debe ser invocado por el usuario normal.
La parte difícil es que el script no debe pedir una contraseña, y no quiero usar el archivo sudoers . Me gustaría evitar usar sudo o su .
es posible?
bash
permissions
Stefan
fuente
fuente
Respuestas:
Si no se tratara de un script bash sino de una aplicación normal, le otorgaría la propiedad a root y establecería el bit setuid en la aplicación. Luego, después de la ejecución, el usuario efectivo bajo el cual se ejecuta la aplicación es root. Sin embargo, debido a problemas de seguridad, esto está prohibido en muchos sistemas para scripts de shell. Esta pregunta aquí en unix.stackexchange.com maneja formas de superar esto.
fuente
Usa sudo. Si no desea tener que llamar
sudo /path/to/myscript
, escriba un contenedor de una líneaexec sudo /path/to/myscript "$@"
. Vea Permitir setuid en los scripts de shell , particularmente la respuesta de Maciej Piechotka sobre el uso de sudo y mi discusión más general sobre los programas setuid .fuente
sudo
.