Отключить всплывающие окна аутентификации пароля в Ubuntu 24.04
При запуске некоторых приложений (например, GParted, Synaptic или Grub Customizer), установке/удалении пакетов с помощью App Center или Software Updater всегда появляется диалоговое окно с запросом пароля администратора для аутентификации.
Это отлично подходит для безопасности! Но для ленивых тех, кто не хочет снова и снова вводить пароль пользователя после входа в систему (или разблокировки экрана), возможно, можно отключить окно аутентификации при использовании компьютеров дома или в других безопасных местах.
ПРИМЕЧАНИЕ 1. В целях безопасности НЕ рекомендуется отключать аутентификацию. Вы ДОЛЖНЫ знать, что собираетесь делать, и делаете это на свой страх и риск!
ПРИМЕЧАНИЕ 2. Это руководство протестировано и работает в Ubuntu 24.04 и Debian 12. Оно также должно работать в Linux Mint 22, но НЕ для Ubuntu 22.04 и более ранних версий.
О Полките:
Ubuntu и многие другие Linux используют polkit для управления общесистемными привилегиями. Это платформа аутентификации, которая обеспечивает более точный контроль прав доступа к графическим средам рабочего стола.
Когда графическому приложению необходимо выполнить зарегистрированное действие, требующее разрешения администратора/root, polkit может контролировать, какой пользователь (или пользователь в какой группе), запускающий приложение, авторизован с аутентификацией по паролю или без нее.
В отличие от sudo
для командной строки, polkit не предоставляет root-права всему процессу, но предоставляет определенные привилегии пользователю или группе по мере необходимости.
И здесь я собираюсь показать вам, как настроить polkit для отключения аутентификации по паролю для глобальных или конкретных действий при работе с определенным пользователем или группой.
Вариант 1. Глобальное отключение аутентификации по паролю для определенных пользователей
ПРИМЕЧАНИЕ. Вариант 1 и вариант 2 НЕ мешают вашей системе запрашивать пароль при запуске команды sudo
в терминале. Это работает только для всплывающих окон с графической аутентификацией! См. вариант 3, если вам нужна команда sudo.
1. Сначала нажмите Ctrl+Alt+T
на клавиатуре, чтобы открыть окно терминала. Когда он откроется, запустите команду создания и редактирования файла конфигурации в каталоге /etc/polkit-1/rules.d/
:
sudo gnome-text-editor /etc/polkit-1/rules.d/49-nopasswd_global.rules
Для рабочего стола, отличного от GNOME, замените gnome-text-editor
в команде вашим любимым текстовым редактором или используйте nano
, который работает на большинстве рабочих столов.
2. Когда файл откроется, добавьте приведенные ниже строки и замените имя пользователя «ji» на свое:
/* Allow members in "ji" group to execute any actions
* without password authentication.
*/
polkit.addRule(function(action, subject) {
if (subject.isInGroup("ji")) {
return polkit.Result.YES;
}
});
В приведенном выше коде добавляется правило для всех зарегистрированных действий, при этом:
subject.isInGroup("ji")
означает всех пользователей в группе «ji» (пользователь «ji», конечно же, входит в группу «ji»). Вы можете добавить больше пользователей в эту группу для правила. Или замените его наsubject.user == "ji"
, чтобы оно работало только для этого пользователя.return polkit.Result.YES;
означает авторизацию без аутентификации! Вы можете заменить YES на:НЕТ
– никогда не разрешено.
AUTH_ADMIN
– для аутентификации необходимо ввести пароль администратора.AUTH_SELF
– для аутентификации необходимо ввести собственный пароль пользователя.AUTH_ADMIN_KEEP
— аналогичноAUTH_ADMIN
, но нет необходимости повторно вводить пароль в течение определенного времени (обычно 5 минут) при выполнении того же действия в том же приложении.AUTH_SELF_KEEP
– см.AUTH_ADMIN_KEEP
, хотя он запрашивает собственный пароль пользователя.
После сохранения файла (для nano
нажмите Ctrl+S для сохранения, затем Ctrl+X для выхода) правило должно применяться немедленно!
Вариант 2. Отключите аутентификацию по паролю для определенных действий
По соображениям безопасности глобально отключать всплывающее окно аутентификации небезопасно. Но кажется менее опасным отключать его для некоторых действий, например, для установки обновлений через «Software Updater».
1. Узнайте все зарегистрированные действия.
В деле нужно сначала узнать все зарегистрированные действия. Они различаются в зависимости от вашего рабочего стола и установленных приложений.
Большинство действий polkit определяются файлами .policy
в каталоге /usr/share/polkit-1/actions. Чтобы просмотреть их, откройте терминал (Ctrl+Alt+T) и выполните команду:
pkaction
Или запустите pkaction --verbose
, чтобы получить дополнительную информацию о зарегистрированных действиях, чтобы было проще определить, какие действия использовать на следующем шаге.
2. Создать/изменить файл конфигурации polkit.
Как и в варианте 1, выполните команду ниже, чтобы создать файл конфигурации (также замените gnome-text-editor
соответственно):
sudo gnome-text-editor /etc/polkit-1/rules.d/49-nopasswd_limit.rules
Когда файл откроется, добавьте аналогичные строки ниже:
/* Allow members in "ji" group to execute the defined actions
* without password authentication.
*/
polkit.addRule(function(action, subject) {
if ((action.id == "org.debian.apt.upgrade-packages" ||
action.id == "org.debian.apt.install-or-remove-packages" ||
action.id == "example.action.remove.if_no_need" ||
action.id == "example.action.remove.if_no_need") &&
subject.isInGroup("ji"))
{
return polkit.Result.YES;
}
});
Здесь в предложении «if» используйте action.id == «xxx.xxx.xxx.xxx»
для действий, которые вы хотите настроить. Вы можете добавить столько действий, сколько захотите, просто используйте ||
(логическое ИЛИ), чтобы разделить их, и включите их все в круглые скобки.
Наконец, добавьте && subject.isInGroup("ji")
или && subject.user == "ji"
, чтобы применить правило ко всем добавленным выше действиям, выполняемым с пользователем. «ji» или пользователи в группе «ji».
ПРИМЕЧАНИЕ. Вам необходимо заменить значения action.id и пользователя «ji» соответственно!
Кроме того, сохранение файла приведет к немедленному применению правила!
Вариант 3. Отключить аутентификацию по паролю для команды sudo
Это необязательный шаг, не имеющий никакого отношения к polkit
. Кроме того, это НЕ безопасно, поскольку предоставляет root-права на весь командный процесс. С его помощью даже удаленный вход по SSH может запускать команду sudo без пароля!
1. Сначала откройте терминал (Ctrl+Alt+T) и выполните приведенную ниже команду, чтобы создать резервную копию файла sudoers, скопировав его в домашний каталог пользователя:
sudo cp /etc/sudoers ~/sudoers.bak
2. Затем выполните команду для редактирования файла sudoers:
sudo visudo
Когда файл откроется в окне терминала, прокрутите вниз и добавьте строку ниже:
ji ALL=(ALL) NOPASSWD:ALL
Здесь замените ji на свое имя пользователя. Наконец, нажмите Ctrl+S для сохранения и Ctrl+X для выхода.