shutdown vs shutdown now - выключение системы без прав root

shutdown vs shutdown now - выключение системы без прав root

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

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

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

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

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


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

Я не думаю, что это связано сПолитики графического интерфейса пользователя.

tl;dr: завершение работы системы без прав root с помощьюshutdown now

решение1

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

Источник: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 выключение питания

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

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

systemctl спящий режим

Чтобы проверить, разрешено ли вам это делать (то есть, у вас установлен 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

Связанный контент