Mam skrypt, który wykonuje wiele różnych czynności, z których większość nie wymaga żadnych specjalnych uprawnień. Jednak jedna konkretna sekcja, którą zawarłem w ramach funkcji, wymaga uprawnień roota.
Nie chcę wymagać, aby cały skrypt działał jako root i chcę móc wywoływać tę funkcję z uprawnieniami roota z poziomu skryptu. Żądanie hasła w razie potrzeby nie stanowi problemu, ponieważ i tak jest w większości interaktywne. Jednak gdy próbuję użyć sudo functionx
, otrzymuję:
sudo: functionx: command not found
Tak jak się spodziewałem, export
nie miało to znaczenia. Chciałbym być w stanie wykonać funkcję bezpośrednio w skrypcie, zamiast rozbijać ją i wykonywać jako osobny skrypt z wielu powodów.
Czy jest jakiś sposób, aby uczynić moją funkcję „widoczną” dla sudo bez wypakowywania jej, znajdowania odpowiedniego katalogu, a następnie wykonywania go jako samodzielnego skryptu?
Ta funkcja dotyczy samej długości strony i zawiera wiele ciągów znaków, niektóre cudzysłowy i niektóre cudzysłowy. Zależy również od funkcji menu zdefiniowanej w innym miejscu w głównym skrypcie.
Spodziewałbym się tylko, że ktoś z sudo KAŻDY będzie mógł uruchomić tę funkcję, ponieważ jedną z rzeczy, które robi, jest zmiana hasła.
declare
je.