Ошибка конфигурации автозапуска ProtonVPN

Операторы ИЛИ и И следуют булевой логике.

Для примитивов A = -name '*.c', B = -name '*.cpp', C = -printимеем следующие уравнения

Ваш первый пример:(A+B ).C

Ваш второй пример:(A.C. )+ (B.C.)

Они имеют прямую математическую эквивалентность, т.е. они одинаковы. Но первый короче и лаконичнее.

0
13.01.2020, 16:41
1 ответ

Путь и исполняемый файл в конфигурации модуля systemd не соответствуют тому, что указано в файле sudoers.d.

В файле sudoers.dупоминается/usr/local/bin/protonvpn(обратите внимание на localи отсутствие расширения -cliпосле protonvpn), что кажется мне правильным, поскольку это то, что ProtonVPN.com указывает в инструкциях, которые вы указали в своем вопрос, а что у меня на родной машине. (Я не могу проверить вашу первую ссылку, она не работает ).

С другой стороны, в описании модуля systemd указано/usr/bin/protonvpn-cli(не local, а расширение -cli):

ExecStart=/usr/bin/protonvpn-cli last-connect  
ExecReload=/usr/bin/protonvpn-cli disconnect && /usr/bin/protonvpn-cli last-connect  
ExecStop=/usr/bin/protonvpn-cli disconnect*

Что побудило меня посмотреть в этом направлении, так это ваш журнал :systemd, похоже, не может запустить запрошенную программу в ExecStart:

Failed at step EXEC spawning /usr/bin/protonvpn-cli

, а потом сразу выходит ошибка.

Вы должны проверить правильный путь и исполняемый файл на вашем компьютере, выполнив команды which protonvpnи which protonvpn-cli. Для меня только первый возвращает путь, и это /usr/local/bin/.

Обновите конфигурацию модуля sudoers.d и systemd, указав правильный файл и путь, указанные на предыдущем шаге.

Дополнительное примечание
Я бы порекомендовал быть более конкретным в вашем файле sudoers.d. На данный момент привилегий пользователя достаточно, чтобы полностью контролировать вашу VPN (, включая ее отключение или отключение выключателя ). Лучше всего предоставить доступ без пароля -только к определенным командам protonvpn connectи protonvpn reconnect.Вот как будет выглядеть строка (при условии, что /usr/local/bin/protonvpn — правильный путь):

teuton ALL = (root) NOPASSWD: /usr/local/bin/protonvpn connect,/usr/local/bin/protonvpn reconnect

Затем в конфигурации модуля systemd:

  1. замените имеющиеся у вас команды ExecReload=на /usr/local/bin/protonvpn reconnect, что, по сути, делает то же самое с тем преимуществом, что не нужно разрешать команду disconnect.
  2. полностью удалите строку ExecStop=/usr/bin/protonvpn-cli disconnect. Это не нужно (при выключении ваш VPN все равно отключится, как это происходит на моей машине без этой строки ).

Теперь вам больше не нужна команда разъединения в вашем файле sudoers.d, и вы только что повысили безопасность своей машины!
;-)

0
15.04.2020, 22:06

Теги

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