`sudo reboot` против` reboot` - какая разница?


60

Я недавно узнал, что rebootработает так же хорошо sudo reboot, как я могу сказать. Однако во многих случаях я вижу, как люди говорят sudo reboot. Почему это? Являются ли они одинаковыми и просто личными предпочтениями? Или они разные? Делает sudo rebootбольше, чем reboot?


1
Перезагрузка системы обычным пользователем даже не звучит логично. Изменение уровня выполнения корневого процесса (init) должно быть возможно только пользователю root и только пользователю root. Вы не можете даже получить доступ к ярлыкам файловой системы sysrq любым другим пользователем. НО ! Вы можете перезагрузить свой linux по sysrq ключам , для этого не требуется sudo:)
— Светлана Линуксенко

sudoэто сокращение от "Super-user Do". Это не влияет на саму команду (это существо reboot), оно просто заставляет ее работать как суперпользователь, а не как вы. Он используется для выполнения действий, на которые у вас иначе не было бы разрешения, но он не меняет того, что делается. Если у вас уже есть разрешение на запуск reboot, тогда хорошо, просто запустите reboot.
— Ли Крокер

Для этого традиционно нужен root. Старые привычки ломаются.
— Торбьерн Равн Андерсен

6
@SvetlanaLinuxenko> Перезагрузка системы обычным пользователем даже не звучит логично . Пользователь, сидящий за консолью, может просто нажать кнопку питания или выдернуть вилку из розетки, если мы не позволим им перезагрузиться.
— Kaz

Многие другие дистрибутивы не позволят вам перезагрузиться, если вы не root.
— user253751

Ответы:


113

На Ubuntu 14.10 и старше sudoтребуется.

Введение Systemd в 15.04 изменило способ обработки Ubuntu shutdownи reboot:

  1. Когда один пользователь вошел в систему, sudoне требуется. Если в системе зарегистрировано более одного пользователя, sudoэто необходимо.

  2. Приложения могут тормозить shutdownи reboot. Вы отменяете эти запреты с помощью sudo.

  3. Один пользователь вошел через sshвсе еще требуется sudo.


Я думаю, что это включает в себя один пользователь вошел в несколько раз, а также.
— Маккензм

6
Это не имеет никакого отношения к количеству подключенных пользователей. Возможность перезагрузки без использования sudoзависит от нахождения на консоли машины. Если вы подключитесь к компьютеру по ssh, вы все равно не сможете перезагрузить его sudo, даже если вы единственный пользователь, вошедший в систему. И наоборот, если вы находитесь на консоли, вы все равно можете перезагрузить компьютер, sudoдаже если другие пользователи подключен удаленно
— Дейв Шерохман,

1
@DaveSherohman: Это не обязательно так - systemd по-прежнему использует отдельные действия polkit в зависимости от того, вошли ли вы в систему только один человек или их несколько. Это означает, что дистрибутив (или системный администратор) может очень легко заставить их вести себя по-другому.
— Гравитация

21

На моем компьютере 14.04, когда я (как обычный пользователь) набираю reboot, я получаю

reboot: Need to be root

В этом разница.

Как отметил Терренс в комментариях, в более поздних системах он работает иначе, чем в моей. Так что вы, вероятно, видите старых рецензий и / или пользователей (таких как я), которые привыкли печатать sudo reboot!


Интересно! Что мне сейчас интересно, так это то, изменилось ли что-то между 14.04 и 17.10, чтобы сделать его таким, к которому вам не нужно иметь права root reboot, или если в моей системе есть другие факторы, которые меняют это.
— Зик Эгерман

3
@ZekeEgherman Я действительно думаю, что разница произошла, когда они перешли с Upstart на Systemd для команд. Когда я смотрю на команду перезагрузки, она указывает на ссылку /bin/systemctl. Вы можете проверить свои, введя ls -al $(which reboot).
— Терренс

@terrance, я тоже вижу ссылку /bin/systemct1, какая у тебя версия?
— Зик Эгерман

Это интересно! Я только что попробовал это на моей предварительной версии 18.04, и она работает, как вы говорите. @ Терранс, я думаю, ты должен написать настоящий ответ.
— Органический мрамор

@ZekeEgherman 16.04. Ubuntu перешел на Systemd в 15.04. Итак, 14.04 все равно будет Upstart тогда или initd, если это то, что вы хотите назвать.
— Терренс

8

sudo rebootиспользуются в учебниках / как-тос для совместимости причин

Хотя reboot может работать

  • если вы root или
  • если вы находитесь на хосте с systemd и
  • если ни одно приложение не блокирует перезагрузку

sudo rebootбудет работать всегда , независимо от

  • являетесь ли вы пользователем root
  • есть ли другие пользователи, вошедшие в систему
  • есть ли блокировка приложений
  • является ли init системным, System V, Upstart, чем угодно

* Ну, конечно, он попробует - если не считать, что некоторые процессы ядра, которые блокируют / ведут себя неправильно, должны работать.


Это всегда будет * работать… если sudo установлено.
— Ave

7

Для себя много раз, если я буду печатать, rebootэто не позволит мне из-за ингибиторов от Chrome при просмотре YouTube и других открытых вкладок. Поэтому я вынужден использовать - sudo rebootбольший молоток.

Это в Ubuntu 16.04


4

Спасибо за обсуждение, я рад понять это сейчас!

Как упомянул Terrance , в версии 15.04 они переключились с Upstart на Systemd для команд. Это изменение означает, что rebootбольше не требуются права суперпользователя.

Относительно того, почему сообщество * nix дает указание sudo reboot, есть несколько возможных причин:

  • Привычка - люди так привыкли к необходимости sudo rebootперезагрузки, что продолжают это делать, несмотря на то, что в этом нет необходимости
  • Не обновленные пользователи - люди, которые инструктируются, sudo rebootиспользуют версии Ubuntu ниже 15.04 или другие дистрибутивы, которые используют Upstart для команд.

  • Совместимость - это то, что мне кажется наиболее правдоподобным: люди инструктируют, sudo rebootпотому что гарантированно перезагружается во всех * nix системах, несмотря ни на что.

Дополнительное примечание: от user535733 «ы ответа :

Внедрение systemd в 15.04 изменило способ, которым Ubuntu выполняет выключение и перезагрузку:

  1. Когда один пользователь вошел в систему, sudoне требуется. Если в системе зарегистрировано более одного пользователя, sudoэто необходимо.

  2. Приложения могут блокировать выключение и перезагрузку. Вы отменяете эти запреты с помощью sudo.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.