Каков механизм позади опции завершения работы GUI Ubuntu?

Исправьте меня, если я неправ. Когда мы пытаемся завершить работу или перезагрузить от терминала при помощи sudo init 0, sudo init 6 (или любая другая команда для той же цели) команды, которые мы должны быть корнем для выполнения, они определяют задачу, но когда мы делаем то же самое из Ubuntu (я предполагаю то же самое с большинством Рабочих столов), UI, это просто не просит у корневого разрешения ни одну из задач.

Какой добрый разговор/механизм происходит в стороне здесь?

2
задан 16 June 2015 в 09:11

2 ответа

Команда, используемая для выключения, использует dbus. На самом деле команда shutdown имеет вид:

dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true

Действительно, служба systemd-logind отвечает за потери пользователей.

В дополнение к тому, что сказал @thomasrutter, действительно, systemd-logind предоставляет пользователям доступ на основе PolicyKit к таким операциям, как выключение системы или спящий режим.

man systemd-logind

systemd-logind is a system service that manages user logins. It is
       responsible for:


       ·   Providing PolicyKit-based access for users to operations such as
           system shutdown or sleep

Пожалуйста, посмотрите мой ответ https://askubuntu.com/a/632165/150504 .

0
ответ дан 2 December 2019 в 02:56

Подобные вещи контролируются Polkit (его официальное название, но его часто называют прежним именем PolicyKit).

Этот инструмент облегчает некорневым пользователям возможность выполнять определенные действия с системой, которые в противном случае потребовали бы root, и завершение работы - это одно из действий, которые обычно настраиваются для предоставления обычным пользователям. Как это работает, пользовательское программное обеспечение вызывает определенный API-интерфейс Polkit с просьбой завершить работу, и Polkit проверит, имеет ли этот пользователь полномочия на выполнение этого действия, и, если это так, облегчает его. Polkit также может запрашивать аутентификацию через агента аутентификации, если у пользователя нет полномочий для выполнения этого действия.

Больше информации об архитектуре Polkit здесь:

http://manpages.ubuntu.com/manpages/precise/man8/polkit.8.html

3
ответ дан 2 December 2019 в 02:56

Другие вопросы по тегам:

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