Ubuntu 16.04でスーパーユーザー権限がなくても `reboot`と` poweroff`が機能するのはなぜですか?


10

理由について多くの質問がshutdownありreboot、root権限が必要です。利用可能な良い答えもたくさんあります。

しかし、私が理解していない何かがありますマルチユーザーシステムでroot権限なしに再起動またはシャットダウンできることが非常に悪い考えである場合...そして、なぜこれはUbuntu 16.04で可能ですか?

とき私は入力poweroffまたはreboot端末とヒットでEnter、それは確かに/再起動がシャットダウンされます!

root権限を必要poweroffrebootしない場合でも問題ありませんが、なぜsuspendroot権限が必要なのですか?suspend端末を入力してを押すとEnter、中断せず、スタックします...を実行するとpm-suspend、が必要になりsudoます。


これは古いバージョンでも可能ですが、構成する場合は可能です(askubuntu.com/a/570969/158442、複数のセッションのアクションに注意してください)。Systemdはデフォルトでこれを行います。Arch Linuxでも見られます。
muru、2016年

回答:


3

私にとって、Ubuntu 16.04 ではどちらpoweroffrebootパスワードは必要ありません。

ただし、これが発生するには、たとえば「foo」というユーザーアカウントを作成し、そのユーザーまたは自分としてlocalhostにsshする必要がありました。これを行うときは、自分自身を認証する必要があります。別のユーザーがログインしていることを認識しているようです。

たとえば、次のメッセージが表示されます。

User foo is logged in on sshd.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl reboot -i'.

おそらく、実際には別のユーザーがログインしていることを認識するのに十分な「賢い」方法です。

(私はあなたが常にrootとして認証するのがいいとあなたに同意します。時々、他のユーザーはログインしていませんが、ある種の計算を実行する重要なプロセスがバックグラウンドで実行されています。)

編集:自分で試してみました。fooとしてログインしている場合は、自分(sudoグループに属している)を認証する必要があります。fooがまだログインしている状態で自分で再起動するとsystemctl reboot -i、パスワードなしで入力する必要があります。違いは、私がsudoグループに属していることをシステムが認識していることだと思います。

編集2:Severus Tuxが指摘したsystemctl suspend -iようにsystemctl reboot -i、前の編集と同様に動作しました。


ああ..私はそれを試していませんでした。ところで、あなたのマシンでサスペンドコマンドは機能しますか?私はそれがバグであることを確認する必要があります
セウェルスTux

localhostにsshしてサスペンドすると、失敗します。「-bash:サスペンド:ログインシェルをサスペンドできません」と表示されます。
レイ

ウィンドウを開いて「サスペンド」しようとすると、ターミナルウィンドウがフリーズします。:-)良い兆候ではない...私はそれは無関係だと思います。とにかく、聞いてくれてありがとう!私は自分自身を試すつもりはなかったが、あなたの質問は私を好奇心をそそられた。私はまだsudoで再起動する癖があります...この微妙な変更に気づきませんでした。
レイ

ありがとうございました。再起動について述べたように、「systemctl suspend -i」もうまく機能します。それを回答に追加することを検討してください
Severus Tux

OK!おそらく1つのメッセージですべてを追加する必要がありましたが、何かを試すたびに再起動が発生したため、投稿した内容を保存する必要がありました...
Ray
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.