Рабочий стол Linux может выполнять несколько действий, которые в противном случае недоступны пользователю при входе в систему с терминала. Такие действия, как выключение системы и изменение системного времени, доступны только пользователю sudo после ввода пароля. Как это работает. Работает ли корневой демон, который принимает команду от пользователя, выполняющего вход в систему. Пожалуйста, наведите меня на правильный ответ.
Я использую Ubuntu 13.10.
mount
(ing), могут немного помочь в понимании. Я лично сильно пережевываю их на данный моментОтветы:
В настоящее время на Ubuntu, фактическое завершение работы выполняется
console-kit-daemon
, в ConsoleKit демон, который работает с привилегиями суперпользователя. Демон ConsoleKit получает запрос на отключение от приложения панели рабочего стола через D-Bus . Политика, которая позволяет непривилегированным процессам общаться с привилегированными процессами, обрабатывается polkit (ранее PolicyKit). Вы можете эмулировать вызов ConsoleKit через,dbus-send
если хотите. В частности, чтобы заставить ConsoleKit выполнить выключение, вы можете сделать:В Ubuntu ConsoleKit заменил Hardware Abstraction Layer (HAL), подсистему, предназначенную для того, чтобы приложения для настольных компьютеров могли обнаруживать и использовать оборудование хост-системы через переносимый и абстрактный API, независимо от типа базового оборудования. HAL сегодня устарел в большинстве дистрибутивов Linux. Эквивалентный
dbus-send
вызов с использованием HAL:В настоящее время ConsoleKit активно не поддерживается. Фокус проекта freedesktop.org сместился в сторону встроенного управления местом / пользователем / сеансом системы инициализации systemd, называемой systemd-logind . Как это повлияет на дистрибутивы, которые приняли свои собственные системы инициализации, такие как upstart в Ubuntu, еще неизвестно.
источник