Як я не дозволяю PolicyKit запитувати пароль?


24

Протягом багатьох років у моєму sudoersфайлі було таке:

scott   ALL=NOPASSWD: ALL

Для тих, хто не знає, це заважає sudoдрузям ( gksudoтощо) запитувати пароль. Однак з роками все більше і більше матеріалів, які колись використовувались sudo, перейшли на використання PolicyKit.

Я шукаю еквівалентну конфігурацію для PolicyKit, яка ніколи не запитає мене про пароль.

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

Відповіді:


15

Ви можете обдурити PolicyKit і придушити ВСІ підказки пароля, замінивши дію за допомогою підстановки.

ВИСНОВОК: Нижче наведено подання ВСІХ підказок пароля для всіх, хто належить до групи адміністратора, за винятком екрана входу. Це надзвичайно небезпечно, і НІКОЛИ не будете реалізовуватись, тому що шанси на те, що ВИ ВІДКЛЮЧИТЕ НАРУШЕННЯ СИСТЕМИ !!

Не кажіть, що вас не попередили!

ПРИМІТКА: Якщо ви працюєте з 12.04 або пізнішої версії, замініть "admin" на "sudo"!

Замініть "ім'я користувача" власним іменем користувача:

usermod -aG admin username

Перехід до кореня:

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. Ви можете назвати все, що завгодно.

І останнє - це ТІЛЬКА політика, яка вам знадобиться, коли мова йде про придушення підказок пароля, оскільки знову це робиться в усьому світі.


Це також працює на Fedora, коли ви замінюєте adminгрупу wheel. Спасибі!
Кенні Расшаерт

3
Чи може хтось описати, як саме це "зламає" систему?
Мехрдад

3
Так, будь ласка. Як це порушить систему? Не це! Щось дурне, що ви робите після цього, зламає систему, але не це! Це дозволить вам робити що-небудь на хості без пароля. Якщо ви зробите щось дурне, ви зламаєте систему. Якщо вам доведеться поставити пароль і ви зробите щось дурне, ви зламаєте систему. Це, по-суті, просто робить його трохи легше зробити що - то дурне.
dangonfast

1
@ jeckyll2hide Прочитайте ПРИМІТКА - це пояснює, чому ОП обрала [Install package file]. Або ви не погоджуєтесь з цим, і ПРИМІТКА вимагає подібного редагування, або ваша редакція недійсна і її слід скасувати назад.
bcbc

1
@prusswan ви можете використовувати Identity=unix-user:scottлише для того, щоб дозволити користувачеві "scott" зробити дію. Крім того, якщо ви хочете просто дозволити певні дії, ви можете вимкнути /var/log/auth.log, а polkitd видасть повне ім'я polkit, яке ви намагалися, коли вам запропонували пароль. cat /var/log/auth.log | grep polkitdдасть вам досить швидкий їх список
Скотт

8

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

Для ознайомлення дивіться у / usr / share / polkit-1 / action, відкрийте зацікавлених у текстовому редакторі, щоб отримати ідентифікатори дій.

Що стосується .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; між ід


Схоже, ви налаштовуєте налаштування для кожної програми окремо. Це здається досить нудним, особливо якщо я пізніше встановлю якусь іншу програму, яка хоче використовувати PolicyKit. Я шукаю спосіб змінити глобальну конфігурацію, яка вплине на все.
Скотт Северанс

1
Ви ніколи не бачили жодного способу вплинути на "глобальне", не вірте, що так працює політика, існує політика на ідентифікатор дії
doug

0

Один із варіантів, якщо ви знаєте, що ви робите, - це повністю вимкнути набір політик.

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


1
Вона видаляє занадто багато важливих пакетів, наприклад network-manager, gnome-control-centerі багато іншого. Чи є ще якийсь дрібнозернистий спосіб?
Suncatcher
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.