У мене є скрипт , який виконує три функції: A && B && C.
Функція Bповинна бути запущена як супер-користувач, в той час Aі Cне роблять.
У мене є кілька рішень, але жодне з них не задовольняє:
Судо весь сценарій:
sudo 'A && B && C'Це здається поганою ідеєю запускати
AіCяк суперкористувача, якщо це не потрібнозробити сценарій інтерактивним:
A && sudo B && CМожливо, мені доведеться ввести свій пароль, але я хочу, щоб мій сценарій був не інтерактивним, оскільки кожна функція може зайняти деякий час, і я не хочу, щоб сценарій на мене чекав. Ну, ось і в першу чергу це сценарій, тому мені не потрібно спостерігати за його виконанням.
Дурне рішення:
sudo : && A && sudo -n B && CПо-перше, здається, що дурно запускати
sudoспочатку неоперацію , а також я повинен перетнути пальцем, що A не збирається брати більше, ніж$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здається, "глобальна держава" для користувача.