shutdown
關於為什麼以及reboot
需要 root 權限有很多問題。也有很多好的答案。
但有一些我不明白的地方:如果能夠在沒有 root 權限的情況下重新啟動或關閉多用戶系統是一個很壞想法...那麼為什麼這在 Ubuntu 16.04 中是可能的呢?
當我在終端機中輸入poweroff
或並點擊 時,它確實關閉/重新啟動!reboot
Enter
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