Я в настоящее время использую применение VPN, которое требует административных привилегий, и я добавил приложение на свой автоматический запуск. Однако каждый раз, когда я вхожу в систему, меня будут всегда просить ввести мой пароль для предоставления разрешений к этому приложению, который я очень избыточный, так как я просто использовал тот же пароль для входа в систему.
Есть ли так или иначе, у меня может быть это приложение, автоматически запускаются без обязанности, вводят мой пароль? Я уже попытался делать команду автоматического запуска sudo airvpn
, но это заставляет приложение не открываться вообще.
Для разъяснения я не надеюсь выполнять команду на начальной загрузке, я надеюсь выполнять команду при входе в систему. Этот вопрос является актуальным, однако, я попытался добавить exec airvpn
кому: /etc/rc.local
, и ничего не происходит на входе в систему.
В этом экземпляре Вы могли бы хотеть избегать использования sudo
, так как это может только попросить у Вас Вашего пароля от терминала, который Вы, кажется, не используете. Вместо этого необходимо использовать gksudo
или gksu
. Оба потребуют, чтобы Вы ввели свой пароль по умолчанию, но это может быть изменено (см. ниже). Или, можно использовать policykit для запущения программы как корневого использования pkexec airvpn
. Это также требует пароля.
Если Вы не хотите вводить свой пароль каждый раз, вот некоторые подсказки относительно того, как выполнить программу как корень, не вводя Ваш пароль.
Если airvpn
исполняемый файл является двоичным файлом (в противоположность текстовому файлу), необходимо смочь использовать команду chmod для изменения полномочий файла активировать setuid режим, подразумевая, что это будет всегда работать как пользователь, который владеет им (который должен быть корнем). Это не потребует пароля и не потребует, чтобы Вы сделали любой из шагов ниже. Это, однако, потребует, чтобы Вы перешли к пути где airvpn
исполняемый файл расположен и выполнен chmod u+s airvpn
как корень. Однако этот прием не работает с текстовыми файлами (программы Python, сценарии оболочки, и т.д.). Кроме того, если Вы когда-либо обновляете этот файл, необходимо сделать это снова. И снова в следующий раз Вы обновляете его. И снова...
sudo
файл конфигурацииBTW, sudo
(и следовательно gksudo
и gksu
, который оба используют те же конфигурации как sudo
) и policykit (который может выполнить программу как корневое использование pkexec
) может оба быть запрограммирован для запущения программы без потребности ввести пароль. IDK, как сделать это с policykit, но я могу учить Вас, как достигнуть этого с sudo
. Перед продолжением у Вас должно быть корневое выполнение оболочки в случае, если что-то идет не так, как надо (можно потерять способность использовать sudo
вообще посмотрите ниже). Создайте текстовый файл в /etc/sudoers.d
каталог. Можно назвать его вообще, Вы хотите, пока это не имеет a .
символ, и не заканчивается a ~
символ.
Прежде чем я продолжу, я должен предупредить Вас, что необходимо будет знать путь к Вашему airvpn
исполняемый файл. Если Вы входите type airvpn
в Ваш терминал это должно сказать Вам, где этот файл. Принятие это /usr/bin/airvpn
, можно ввести:
%admin ALL = NOPASSWD:/usr/bin/airvpn
и сохраните его в /etc/sudoers.d
каталог. Это - вероятно, хорошая идея использовать chmod
управляйте для установки полномочий файла на 0440. Можно сделать это путем выполнения (как корень) chmod 0440 file
, замена "файла" с названием недавно созданного файла.
Теперь, откройте новый терминал и протестируйте эту новую конфигурацию путем выполнения gksudo airvpn
. (Причина, которая "новое" слово полужирным, состоит в том потому что sudo
/gksudo
не могли бы попросить Вы пароль, если Вы уже выполнили a sudo
/gksudo
команда в существующем терминале, даже если Вы на самом деле не настроили sudo
постараться не просить у Вас пароль.), Если Вы смогли сделать это в новом терминале, Вы успешно позволили выполниться airvpn
без пароля. Теперь все, что необходимо сделать, изменить объект запуска для выполнения gksu airvpn
или gksudo airvpn
, и Вы будете хороши для движения. Это будет работать независимо от того, является ли исполняемый файл двоичным файлом или текстовым файлом. Кроме того, необходимо только должны быть сделать это однажды, независимо от того, как часто Вы обновляете эту программу.
Если что-то идет не так, как надо, и Вы теряете свою способность использовать sudo
/gksudo
/gksu
для выполнения чего-либо как корня можно удалить недавно созданный файл, и sudo должен вести себя, как он сделал прежде. (Помните, когда я советовал Вам поддерживать корневую оболочку в рабочем состоянии? Вам, вероятно, будет нужен он для удаления того файла. Конечно, Вы могли выполнить корневую оболочку путем выполнения pkexec su
, и затем используйте это для удаления файла.)