У меня есть скрипт , который выполняет три функции: 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кажется "глобальным состоянием" для пользователя.