為什麼 Ubuntu 16.04 中「reboot」和「poweroff」在沒有超級使用者權限的情況下也能運作?

為什麼 Ubuntu 16.04 中「reboot」和「poweroff」在沒有超級使用者權限的情況下也能運作?

shutdown關於為什麼以及reboot需要 root 權限有很多問題。也有很多好的答案。

但有一些我不明白的地方:如果能夠在沒有 root 權限的情況下重新啟動或關閉多用戶系統是一個很壞想法...那麼為什麼這在 Ubuntu 16.04 中是可能的呢?

當我在終端機中輸入poweroff或並點擊 時,它確實關閉/重新啟動!rebootEnter

poweroff當不需要root 權限時對我來說沒問題reboot…但是為什麼suspend需要 root 權限呢?當我suspend在終端中輸入並點擊時Enter,它不會暫停,而是卡住......而當我運行時pm-suspend,它需要sudo.

答案1

對我來說, Ubuntu 16.04 上poweroff也不reboot需要密碼。

然而,要發生這種情況,我必須建立一個名為「foo」的使用者帳戶,然後以該使用者或我自己的身分 ssh 到 localhost。當我這樣做時,我確實需要驗證自己的身份。它似乎識別出另一個用戶已登入。

例如,我收到以下訊息:

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

相關內容