Tengo un script que ejecuta tres funciones: A && B && C.
La función Bdebe ejecutarse como un superusuario, mientras que Ay Cno.
Tengo varias soluciones, pero ninguna de estas es satisfactoria:
sudo el guión completo:
sudo 'A && B && C'Parece una mala idea ejecutar
AyCcomo superusuario si no es necesariohacer el guión interactivo:
A && sudo B && CEs posible que tenga que escribir mi contraseña, pero quiero que mi script no sea interactivo, ya que cada función puede tomar un tiempo, y no quiero que el script me espere. Bueno, esa es también la razón por la cual es un script en primer lugar, así que no tengo que verlo correr.
La estúpida solución:
sudo : && A && sudo -n B && CPrimero parece estúpido ejecutar un no-op
sudoprimero, y también debo cruzar el dedo para que A no vaya a tomar más que$sudo_timeout.Solución hipotética (deseo que me digas que existe):
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'Eso solicitaría mi contraseña al principio, y luego usaría esas credenciales solo cuando sea necesario.
¿Cuál es tu opinión sobre todo esto? Me sorprendería mucho que no haya una solución a ese problema, ya que creo que es un problema bastante común (¿qué pasa? make all && sudo make install)
Ay . Sin problemas de tiempo de espera y sin privilegios para A y C. No creo que 4 sea posible, parece un "estado global" para un usuario.Csu -l some_non_priviliged_usersudo