Ich habe ein Skript, das drei Funktionen ausführt : A && B && C
.
Die Funktion B
muss als Superuser ausgeführt werden, während A
und C
nicht.
Ich habe mehrere Lösungen, aber keine davon ist zufriedenstellend:
sudo das gesamte Skript:
sudo 'A && B && C'
Das scheint eine schlechte Idee zu sein
A
undC
als Superuser, wenn es nicht benötigt wirdMachen Sie das Skript interaktiv:
A && sudo B && C
Möglicherweise muss ich mein Passwort eingeben, aber ich möchte, dass mein Skript nicht interaktiv ist, da jede Funktion einige Zeit in Anspruch nehmen kann und ich nicht möchte, dass das Skript auf mich wartet. Nun, das ist auch der Grund, warum es überhaupt ein Skript ist, also muss ich nicht zusehen, wie es läuft.
Die blöde Lösung:
sudo : && A && sudo -n B && C
Zuerst scheint es dumm, zuerst ein No-Op zu machen
sudo
, und ich muss auch die Daumen drücken, dass A nicht mehr als dauern wird$sudo_timeout
.Hypothetische Lösung (ich wünschte, Sie würden mir sagen, dass es existiert):
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'
Das würde zu Beginn nach meinem Passwort fragen und diese Anmeldeinformationen dann nur bei Bedarf verwenden.
Was ist deine Meinung zu all dem? Ich wäre sehr überrascht, dass es keine Lösung für dieses Problem gibt, da ich denke, dass es ein ziemlich häufiges Problem ist (was ist mit make all && sudo make install
) ?
A
undC
Teile explizit mit aussu -l some_non_priviliged_user
. Keine Timeout-Probleme und keine Privilegien für A und C. Ich denke nicht, dass 4 möglich ist,sudo
scheint ein "globaler Zustand" für einen Benutzer zu sein.