Почему sudo требуется для перезагрузки в терминале, а не из графического интерфейса?

10

Когда я включаю свою машину и захожу в свою учетную запись, я могу делать все, что захочу, и даже выключить машину или сказать перезагрузка.

Но если я открываю терминал и пытаюсь запустить команду, rebootили shutdownмне нужен root-доступ. Почему это так?

Я могу подумать о некоторых причинах, по которым такое поведение, как для вас, может оказаться желательным, sshно я не уверен в этом, или я могу полностью упустить момент.

Аман Дип Гаутам
источник
Проверьте dbusсвою графическую среду (например, KDE или gnome).
Hennes
Я думаю, что вы можете сделать это на каждом gui, я просто хочу знать, почему такая функция дизайна есть.
Аман Дип Гаутам

Ответы:

7

Это функция безопасности.

При использовании графического интерфейса вы (как правило) сидите перед компьютером, на котором работаете. Однако при использовании терминала вы можете физически находиться на одной машине и удаленно использовать другую. Вы можете иметь множество терминальных окон , открытых для многих различных машин. Что если вы случайно наберете reboot не в том виде? Это действие может варьироваться от неудобства до полной катастрофы.

Использование sudo заставляет вас использовать пароль. Если вы введете неправильный пароль, это выдаст вам ошибку, и, надеюсь, вы поймете, что находитесь не в том терминале. Вот почему рекомендуется использовать разные пароли root на каждом сервере.

Keltari
источник
Я тоже так думал, но просто хотел убедиться, что я что-то не пропустил .. :)
Aman Deep Gautam
1
Я видел, как несколько администраторов Unix удаляли имя компьютера из своих запросов оболочки, потому что это занимало много места, а потом сожалели об этом решении.
Келтари
Обратите внимание, что это не совсем функция безопасности в понимаемом здесь смысле. Когда Unix запустился, вы получили только консоли (без графического интерфейса). И только пользователь root имел разрешение на выключение / перезапуск. Это все еще так. GUI обходит, используя бит + s в файлах. Хотя вы можете удалить их из своего меню, используя следующие команды: askubuntu.com/questions/53308/…
Алексис Уилк,
Я только что видел, как моя CentOS VM утверждает, что «перезагрузка» не была командой, когда я был su-ed как root. Я набрал sudo rebootтам, и это сработало. Когда я напрямую SSH в качестве root, rebootработает нормально. Это странно.
Стивен Лу
@StevenLu Проверьте свои пути. ("echo $ {PATH}") Вероятно, в некоторых случаях каталог "sbin" отсутствует в вашем пути. В этом случае странность не может быть с командой перезагрузки. Использование «которая перезагрузка» также может помочь объяснить.
ТООГАМ
0

Обычно вы можете перезагрузиться с терминала, нажав Ctrl + Alt + Del. Это не работает удаленно. (Удаленная перезагрузка из графического интерфейса без привилегий также не работает.)

Джошуа
источник