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