1

Я только что заметил что-то странное.

Зарегистрировавшись в системе archlinux как непривилегированный пользователь, я выполнил shutdown . Как и ожидалось, он вернулся Must be root.

К моему удивлению, выполнение shutdown now это (видимо!) не проверяет, есть ли у текущего пользователя права root. Это просто выключает машину.

Я попытался воспроизвести это как в tty, так и в терминале в плазменной DE.

Запись с экрана tty


Я использую Archlinux с ядром 4.2.2 с текущими пакетами.

Я не думаю, что это связано с политиками GUI.

tl; dr: выключение системы без полномочий root с shutdown now

1 ответ1

0

На самом деле это не мой ответ - просто репост ответа, который, к сожалению, был удален по неизвестным причинам.

Источник: http://web.archive.org/web/20151014220049/https://superuser.com/questions/985661/shutdown-vs-shutdown-now-shutting-down-system-as-non-root


В Arch Linux, при определенных обстоятельствах, вы вполне можете выключить / перезагрузить / спящий режим ... ваш компьютер без прав root.

На странице Arch Linux Wiki по управлению питанием в Systemd говорится:

polkit необходим для управления питанием как непривилегированный пользователь. Если вы находитесь в локальном сеансе пользователя systemd-logind и другой сеанс не активен, следующие команды будут работать без привилегий root:

systemctl poweroff

systemctl перезагрузка

systemctl приостановить

systemctl hibernate

Чтобы проверить, разрешено ли вам это делать (т. Е. У вас установлен polkit и ваш сеанс не прерван), вы можете использовать следующую команду:

$  loginctl show-session $XDG_SESSION_ID --property=Active
   Active=yes

В других системах systemd , таких как мой Debian 8, это невозможно, несмотря на тот же ответ на эту команду:

$  loginctl show-session $XDG_SESSION_ID --property=Active
   Active=yes
$ systemctl reboot
 ==== AUTHENTICATING FOR org.freedesktop.login1.reboot ===
 Authentication is required for rebooting the system.
 Authenticating as: ,,, (myusername)
 Password: 

что указывает на то, что polkit по умолчанию был настроен по-разному в Arch Linux и Debian. Люди из Arch Linux видят преимущество этого перед sudo в том, что они заявляют на вики-странице Polkit:

Polkit используется для управления общесистемными привилегиями. Он обеспечивает организованный способ общения непривилегированных процессов с привилегированными. В отличие от таких систем, как sudo, он не предоставляет root-права для всего процесса, а обеспечивает более точный уровень контроля над политикой централизованной системы.

Как обычно, YMMV.

Что касается shutdown now , я предполагаю, что это перенаправление на systemctl poweroff , которое разрешено непривилегированному пользователю.

- https://superuser.com/users/255732/mariusmatutiae

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .