У меня есть скрипт , который выполняет три функции: A && B && C
.
Функцию B
нужно запускать как суперпользователь, A
а C
пока нет.
У меня есть несколько решений, но ни одно из них не удовлетворяет:
sudo весь скрипт:
sudo 'A && B && C'
Это кажется плохой идеей для запуска
A
иC
как супер-пользователь, если он не нуженсделать скрипт интерактивным:
A && sudo B && C
Возможно, мне придется ввести свой пароль, но я хочу, чтобы мой сценарий был неинтерактивным, поскольку каждая функция может занять некоторое время, и я не хочу, чтобы сценарий ждал меня. Ну, это также, почему это сценарий, так что мне не нужно смотреть его запуск.
Глупое решение:
sudo : && A && sudo -n B && C
Сначала кажется глупым запускать неоперативный код
sudo
, а также я должен скрестить палец, что А не собирается брать больше, чем$sudo_timeout
.Гипотетическое решение (я хочу, чтобы вы сказали, что оно существует):
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'
Это будет запрашивать мой пароль в начале, а затем использовать эти учетные данные только при необходимости.
Что ты думаешь обо всем этом? Я был бы очень удивлен, что нет решения этой проблемы, так как я думаю, что это довольно распространенная проблема (как насчет make all && sudo make install
)
A
иC
части явного использованияsu -l some_non_priviliged_user
. Нет проблем с тайм-аутом и нет привилегий для A и C. Я не думаю, что 4 возможно,sudo
кажется "глобальным состоянием" для пользователя.