Mam skrypt, który wykonuje trzy funkcje: A && B && C.
Funkcja Bmusi być uruchomiony jako super-użytkownika, podczas Ai Cnie.
Mam kilka rozwiązań, ale żadne z nich nie jest satysfakcjonujące:
sudo cały skrypt:
sudo 'A && B && C'To wydaje się złym pomysłem do uruchomienia
AiCjako superużytkownik, jeśli nie jest potrzebneuczyń skrypt interaktywnym:
A && sudo B && CByć może będę musiał wpisać hasło, ale chcę, aby mój skrypt nie był interaktywny, ponieważ każda funkcja może zająć trochę czasu i nie chcę, aby skrypt na mnie czekał. Właśnie dlatego jest to przede wszystkim skrypt, więc nie muszę go oglądać.
Głupie rozwiązanie:
sudo : && A && sudo -n B && CPo pierwsze, wydaje się głupotą, aby najpierw uruchomić no-op
sudo, a także muszę kciuka, że A nie zajmie więcej niż$sudo_timeout.Hipotetyczne rozwiązanie (chciałbym, żebyś mi powiedział, że istnieje):
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'Spowodowałoby to podanie mojego hasła na początku, a następnie użycie tych poświadczeń tylko w razie potrzeby.
Jakie jest twoje zdanie na ten temat? Byłbym bardzo zaskoczony, że nie ma rozwiązania tego problemu, ponieważ uważam, że jest to dość powszechny problem (co z tym make all && sudo make install)
Ai . Brak problemów z przekroczeniem limitu czasu i brak uprawnień dla A i C. Nie sądzę, że 4 jest możliwe, wydaje się „globalnym stanem” dla użytkownika.Csu -l some_non_priviliged_usersudo