ГАЙКА UPS: остановите определенный сервис на сбой питания

Кто-либо знает, как остановить сервис, когда существует сбой питания с помощью ГАЙКИ?
Я сделал пользовательский сценарий как это, проблема состоит в том, что у пользователя сценария (ГАЙКА) нет корневых полномочий остановить сервис.
Я хочу остановить boinc-клиент прямо после сбоя питания, так, чтобы я не истощал батареи и запускал генератор, прежде чем это будет действительно необходимо.

#! /bin/bash
# UPS notify script.

if [$NOTIFYTYPE == "ONBATT"]
then

    /etc/init.d/boinc-client stop
fi

/usr/bin/mail -s "UPS '$UPSNAME': $NOTIFYTYPE" bla@shee.com <<END
$*
END
0
задан 27 October 2014 в 22:19
2 ответа

Wygląda dobrze.

Masz dwie opcje, jedna lepsza od drugiej.

Pierwszą i najlepszą opcją jest użycie sudo. Zezwól na nieinteraktywne sudo nopasswd dla użytkownika, jako którego działa skrypt (określ ścieżkę skryptu jako dozwolone polecenie) i umieść sudo przed poleceniem zatrzymania.

Inną opcją jest użyj uprawnień unix. Upewnij się, że właścicielem skryptu jest root, a jego grupa jest czymś, do czego ma dostęp działający użytkownik (może być konieczne utworzenie nowej grupy). Zrób to suid, daj grupie dostęp do wykonywania i jesteś gotowy (ale upewnij się, że grupa nie ma uprawnień do zapisu, w przeciwnym razie będziesz mieć lukę w zabezpieczeniach).

0
ответ дан 5 December 2019 в 18:48

У вас может быть задание cron с проверкой прав root для файла / tmp / poweroutage каждые 10 секунд и убить boinc, как только вы его увидите. Я согласен, что работа с разрешениями может быть предпочтительнее.

-1
ответ дан 5 December 2019 в 18:48

Теги

Похожие вопросы