Чому `reboot` та` poweroff` працюють без привілеїв суперкористувача в Ubuntu 16.04?


10

Є багато запитань щодо того, чому shutdownі для чого rebootпотрібні привілеї root. Є також багато хороших відповідей.

Але там я торкнутися не розумію : Якщо можливість перезавантаження або виключення без привілеїв суперкористувача в багатокористувацької системі є дуже погана ідея ... то чому це можливо в Ubuntu 16.04?

Коли я набираю poweroffабо rebootв термінал і натискаю Enter, він справді закривається / перезавантажується!

Для мене це нормально, коли poweroffі rebootне потрібно привілеїв root ... але навіщо suspendпотрібні привілеї root? Коли я набираю suspendтермінал і натискаю Enter, він не зупиняється, натомість він застрягає ... а коли я запускаю pm-suspend, це вимагає sudo.


Це може бути можливим і в старих версіях, якщо ви налаштуєте це ( askubuntu.com/a/570969/158442 , зверніть увагу на дії для взаємних сеансів). Хоча Systemd робить це за замовчуванням. Також помічено в Arch Linux.
муру

Відповіді:


3

Для мене обом 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без пароля. Я припускаю, що різниця полягає в тому, що система знає, що я в групі судо.

Редагування 2: Як зазначає Северус Тукс, він systemctl suspend -iповодився аналогічно systemctl reboot -iпопередньому редагуванню.


Ага .. Я цього не пробував. BTW призупиняє роботу команди на вашій машині? Мені потрібно переконатися, що його помилка
Severus Tux

Якщо я сш на localhost і призупиняю, я не вдається. Я отримую "-bash: suspend: не може призупинити оболонку входу".
Рей

Якщо я відкрию вікно і спробую "призупинити", вікно терміналу замерзає. :-) Не гарний знак ... Я думаю, що це не пов'язано. У будь-якому випадку, дякую за запитання! Я ніколи не думав пробувати себе, але твоє запитання мене викликало цікавість. Я все ще звичаю перезавантажуватися з судо ... не помічав цієї тонкої зміни.
Рей

Дякую. Як ви вже говорили про перезавантаження, "systemctl suspend -i" також добре працює. Розглянемо, додавши це до своєї відповіді
Северус Тукс

Добре! Я, мабуть, мав би додати це все одним повідомленням, але кожен раз, коли я щось намагався, це викликало перезавантаження, тому мені довелося зберегти те, що я розміщував ...
Рей
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.