Tengo un script que ejecuta tres funciones: A && B && C
.
La función B
debe ejecutarse como un superusuario, mientras que A
y C
no.
Tengo varias soluciones, pero ninguna de estas es satisfactoria:
sudo el guión completo:
sudo 'A && B && C'
Parece una mala idea ejecutar
A
yC
como superusuario si no es necesariohacer el guión interactivo:
A && sudo B && C
Es 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 && C
Primero parece estúpido ejecutar un no-op
sudo
primero, 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
)
A
y . 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.C
su -l some_non_priviliged_user
sudo