¿Es posible utilizar una interfaz de sudo (como gksudo) para elevar los privilegios del proceso actual? Sé que puedo hacer lo siguiente:¿Cómo sudo el proceso actual?
sudo cat /etc/passwd-
Pero estoy interesado en hacer esto:
sudo-become-root # magic function/command
cat /etc/passwd-
estoy escribiendo en Python. Mi caso de uso es que tengo un programa que se ejecuta como usuario, pero puede encontrar archivos para leer/escribir que son propiedad de la raíz. Me gustaría pedir una contraseña, obtener privilegios de administrador, hacer lo que necesito y, opcionalmente, quitar los privilegios nuevamente.
Sé que podría separar la lógica de administración y la lógica que no es de administrador en procesos separados, y luego simplemente ejecutar el proceso de administración como root (con alguna comunicación - policykit/dbus sería una buena opción aquí). Pero esperaba una solución mucho más simple (aunque ciertamente más arriesgada).
Estoy pensando en algo así como ejecutar el ppriv de Solaris a través de sudo para luego modificar los privilegios del proceso actual. Lo cual parece una ida y vuelta traviesa pero factible. Pero hasta donde yo sé, Linux no ofrece ppriv.
(Me sorprende que esto no es ya evidente, sino que parece como una cosa no-raro querer y no parece ser un agujero de seguridad para permitir la escalada en proceso sobre la escalada de un nuevo proceso .)
si sudo funciona para usted, ¿qué tal su? – Dani
AFAIK, su me daría una subcategoría para trabajar. Lo cual está bien para el uso interactivo. Pero quiero elevar los privilegios del proceso actualmente en ejecución, no un subproceso de shell. –
Esto no es realmente una respuesta, pero me gusta ver el código fuente de OpenSSH como un modelo para la manipulación y separación de privilegios. Sin embargo, a diferencia de su cae, creo que el daemon ssh comienza con privilegios elevados y luego, de forma selectiva, ahorca a los menores privilegiados. –