У мене є сценарій, який робить багато різних речей, більшість з яких не потребує особливих привілеїв. Однак для одного конкретного розділу, який я містив у собі функції, потрібні кореневі привілеї.
Я не хочу вимагати, щоб весь скрипт запускався як корінь, і я хочу мати можливість викликати цю функцію з привілеями root зсередини сценарію. Прохання про введення пароля, якщо це необхідно, не є проблемою, оскільки воно в основному є інтерактивним. Однак, коли я намагаюся використовувати sudo functionx
, я отримую:
sudo: functionx: command not found
Як я і очікував, export
нічого не змінило. Я хотів би мати можливість виконувати функцію безпосередньо в сценарії, а не розбивати її та виконувати її як окремий сценарій з кількох причин.
Чи я можу зробити свою функцію «видимою» для sudo, не витягаючи її, знайшовши відповідний каталог, а потім виконавши її як окремий сценарій?
Ця функція є приблизно довгою сторінкою і містить кілька рядків, деякі з подвійним котируванням та одні з цитатами. Це також залежить від функції меню, визначеної в іншому місці основного сценарію.
Я би сподівався лише, що хтось із sudo БЕЗКОШТОВНО зможе запустити цю функцію, оскільки одна з речей, що вона робить, - це зміна паролів.
declare
їх також.