Есть много вопросов о том, почему shutdown
и reboot
требуются права root. Есть также много хороших ответов.
Почему для выключения и перезагрузки в терминале нужны права root?
- Как кнопка питания выключает компьютер без прав root?
Но есть кое-что, чего я не понимаю.: Если есть возможность перезагрузить или выключить компьютер без прав root вмногопользовательскийсистема - этоочень плохоидея... тогда почему это возможно в Ubuntu 16.04?
Когда я набираю poweroff
или reboot
в терминале и нажимаю Enter, он действительно выключается/перезагружается!
Для меня это нормально, когда poweroff
и reboot
не требуются права root... но зачем нужны suspend
права root? Когда я набираю suspend
в терминале и нажимаю Enter, он не приостанавливается, а зависает... и когда я запускаю pm-suspend
, Он требует sudo
.
решение1
Для меня оба варианта poweroff
не reboot
требуют пароля в Ubuntu 16.04.
Однако, чтобы это произошло, мне пришлось создать учетную запись пользователя с именем "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: Как отметил Северус Такс, systemctl suspend -i
поведение похоже на systemctl reboot -i
предыдущее редактирование.