Как запретить PolicyKit запрашивать пароль?

19

В течение многих лет у меня было следующее в файле sudoers :

scott   ALL=NOPASSWD: ALL

Для тех, кто этого не знает, это предотвращает запрос sudo и друзей ( gksudo и т. д.) на запрос пароля. Однако на протяжении многих лет все больше и больше вещей, которые когда-то использовали sudo , были переключены на использование PolicyKit.

Я ищу эквивалентную конфигурацию PolicyKit, так что он никогда не спросит меня о моем пароле.

Для тех, кому не нравится мой запрос, позвольте мне сказать следующее: я понимаю причины настройки по умолчанию, и они звучат. Я также понимаю риски, присущие конфигурации, которую я хочу сделать. Тем не менее, именно так я хочу настроить свою систему. Те, кто не полностью понимает вышеизложенное, не должны пытаться делать то, что я пытаюсь.

    
задан Scott Severance 24.01.2012 в 07:02
источник

3 ответа

14

Это на самом деле не совсем так. Вы можете обмануть PolicyKit и подавить ВСЕ подсказки пароля, подставив действие с помощью подстановочного знака.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Следующее будет подавлять ВСЕ подсказки пароля во всем мире для всех, принадлежащих к группе администратора, за исключением экрана входа в систему. Это ЧРЕЗВЫЧАЙНО опасно и НИКОГДА не должно быть реализовано, потому что, скорее всего, ВЫ НАЙДЕТЕ РАЗРЕШЕНИЕ ВАШЕЙ СИСТЕМЫ !!

Не говори, что тебя не предупреждали!

ПРИМЕЧАНИЕ. Если вы используете 12.04 или новее, замените «admin» на «sudo»!

Замените «имя пользователя» на свое фактическое имя пользователя:

usermod -aG admin username

Переключиться на root:

sudo -i

Создайте новую политику:

gedit /var/lib/polkit-1/localauthority/50-local.d/disable-passwords.pkla

Добавьте следующее:

[Do anything you want]
Identity=unix-group:admin
Action=*
ResultActive=yes

Сохранить, выйти и перезагрузить компьютер. Затем попробуйте что-то, что обычно требует пароля. :)

ПРИМЕЧАНИЕ. Неважно, что вы используете в качестве имени файла .pkla. Вы можете назвать все, что захотите. НО, важно, чтобы вы использовали законную политику. Вот почему я пошел с «Install package file». Вам необязательно идти с тем, что я сделал, пока он находится в списке политик, который распознает Ubuntu.

И, наконец, это ТОЛЬКО политика, которая вам понадобится, когда дело доходит до подавления подсказок пароля, потому что снова это делает глобально.

    
ответ дан user55572 19.04.2012 в 00:09
источник
7

Вы можете создать .pkla, либо все в одном, либо пару на основе групп действий, не имеет большого значения.

Для справочного поиска в / usr / share / polkit-1 / actions, откройте заинтересованные в текстовом редакторе, чтобы получить идентификаторы действия.

Что касается .pkla или 2, я считаю, что лучшее место для их размещения здесь, оно будет защищено от любых обновлений

/var/lib/polkit-1/localauthority/50-local.d

Так, например, вот моя главная, с именем package-manager.pkla, хотя она немного расширяет рамки политики управления пакетами

[Install package file]
Identity=unix-group:admin
Action=org.debian.apt.install-file;org.debian.apt.update-cache;org.debian.apt.install-or-remove-packages;org.debian.apt.upgrade-packages
ResultActive=yes

[Install package synaptic]
Identity=unix-group:admin
Action=com.ubuntu.pkexec.synaptic
ResultActive=yes

[Change add repo]
Identity=unix-group:admin
Action=com.ubuntu.softwareproperties.applychanges;org.debian.apt.change-repository
ResultActive=yes

[usbcreator format]
Identity=unix-group:admin
Action=com.ubuntu.usbcreator.format
ResultActive=yes

[Install bootloader]
Identity=unix-group:admin
Action=com.ubuntu.usbcreator.bootloader
ResultActive=yes

[Add users]
Identity=unix-group:admin
Action=org.freedesktop.accounts.user-administration
ResultActive=yes

Обратите внимание, что начиная с 12.04 , группа, используемая для пользователя «admin», должна быть изменена на sudo, т.е.

Identity=unix-group:sudo

Также обратите внимание, что действия могут быть нанизаны на каждый раздел, без пробелов, используйте a; между id

    
ответ дан doug 24.01.2012 в 09:08
0

Один из вариантов, если вы знаете, что вы делаете, - полностью отключить набор политик.

sudo apt-get remove libpolkit-agent-1-0     

ответ дан viksit 08.06.2017 в 11:04