it-swarm-ja.com

シャットダウンと今すぐシャットダウン-システムを非ルートとしてシャットダウンする

私はちょうど奇妙な何かを観察しました。

非特権ユーザーとしてarchlinuxシステムにログインし、shutdownを実行しました。予想通り、Must be root.を返しました

驚いたことに、shutdown now it(どうやら!)を実行すると、現在のユーザーがroot権限を持っているかどうかがチェックされませんnot。単にマシンをシャットダウンするだけです。

これをPlasmaDEのttyと端末の両方で再現してみました。

ttyの画面記録


現在のパッケージで4.2.2カーネルを使用してArchlinuxを実行しています。

これは GUIポリシー とは関係ないと思います。

tl; dr:shutdown nowを使用してシステムを非rootとしてシャットダウンします

1

実際には私の答えではありません。残念ながら、不明な理由で削除された回答を再投稿するだけです。

出典: http://web.archive.org/web/20151014220049/https://superuser.com/questions/985661/shutdown-vs-shutdown-now-shutting-down-system-as-non-ルート


Arch Linuxでは、特定の状況下で、root権限なしでPCをシャットダウン/再起動/休止状態にすることができます。

Systemdの電源管理に関するArch Linux Wikiページ 状態:

polkitは、非特権ユーザーとしての電源管理に必要です。ローカルのsystemd-logindユーザーセッションにいて、他のセッションがアクティブになっていない場合、次のコマンドはroot権限がなくても機能します。

systemctl poweroff

systemctlreboot

systemctl suspend

systemctl hibernate

これを実行できるかどうかを確認するには(、つまり、polkitがインストールされていて、セッションが中断されていない)、次のコマンドを使用できます。

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

私のDebian8のような他のsystemdシステムでは、このコマンドに同じ応答があるにもかかわらず、これは不可能です。

$  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がArchLinuxとDebianでさまざまな方法でデフォルトで設定されていることを示しています。 Arch Linuxの人々は、 Polkitのwikiページ :で、Sudoよりもこの利点を理解しています。

Polkitは、システム全体の特権を制御するために使用されます。これは、非特権プロセスが特権プロセスと通信するための体系化された方法を提供します。 Sudoなどのシステムとは対照的に、プロセス全体にroot権限を付与するのではなく、集中型システムポリシーをより細かく制御できます。

いつものように、YMMV。

shutdown nowに関しては、非特権ユーザーに許可されているsystemctl poweroffへのリダイレクトだと思います。

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

0