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

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

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

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

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

запись экране tty


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

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

tl;dr: выключение системы как некорневой с shutdown now

29
задан Carsten Hagemann
23.01.2023 13:30 Количество просмотров материала 2689
Распечатать страницу

1 ответ

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

источник: http://web.archive.org/web/20151014220049//q/shutdown-vs-shutdown-now-shutting-down-system-as-non-root-143542/"https://wiki.archlinux.org/index.php/Systemd#Power_management в" rel="noreferrer на nofollow">арки Линукс вики-страница об управлении питанием под systemd гласит:

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

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, во что они заявляют, в страница wiki на Polkit:

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

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

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

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

0
отвечен Carsten Hagemann 2023-01-24 21:18

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх