`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.

user535733
источник
Я думаю, что это включает в себя один пользователь вошел в несколько раз, а также.
Маккензм
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

WinEunuuchs2Unix
источник
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.

Зик Эгерман
источник