`sudo reboot` contre` reboot` - quelle est la différence?

60

J'ai récemment découvert que cela rebootfonctionne aussi bien que sudo reboot, d'après ce que je peux dire. Cependant, dans de nombreux cas, je vois des gens dire à sudo reboot. Pourquoi est-ce? Sont-ils les mêmes, et juste préférence personnelle? Ou sont-ils différents? Fait sudo rebootplus que reboot?

Zeke Egherman
la source
1
Le redémarrage du système par l'utilisateur normal ne semble même pas logique. Le changement de niveau d'exécution du processus racine (init) devrait être possible par l'utilisateur racine et uniquement utilisateur racine. Vous ne pouvez même pas accéder aux raccourcis des systèmes de fichiers de sysrq par un autre utilisateur. MAIS ! Vous pouvez redémarrer votre linux avec les sysrq clés , cela ne nécessite pas sudo:)
Svetlana Linuxenko
sudoest l'abréviation de "Super-user Do". Cela n'a aucun effet sur la commande elle-même (cet être reboot), il la fait simplement s'exécuter en tant que super-utilisateur plutôt que comme vous. Il est utilisé pour faire des choses que vous n'auriez peut-être pas l'autorisation de faire autrement, mais ne change pas ce qui est fait. Si vous avez déjà la permission de courir reboot, très bien, lancez-vous reboot.
Lee Crocker
Cela a traditionnellement besoin de racine à faire. Les vieilles habitudes se défont.
Thorbjørn Ravn Andersen
6
@SvetlanaLinuxenko> Le système redémarré par l'utilisateur habituel ne semble même pas logique. L'utilisateur assis à la console peut simplement appuyer sur le bouton d'alimentation ou débrancher l'appareil si nous ne le laissons pas correctement.
Kaz
Beaucoup d' autres distributions ne vous laisseront pas redémarrer si vous n'êtes pas root.
user253751

Réponses:

113

Sur Ubuntu 14.10 et plus, sudoest requis.

L’introduction de Systemd dans 15.04 a changé la façon dont Ubuntu gère shutdownet reboot:

  1. Lorsqu'un seul utilisateur est connecté, ce sudon'est pas nécessaire. Lorsque plus d'un utilisateur est connecté, il sudoest requis.

  2. Les applications peuvent inhiber shutdownet reboot. Vous substituez ces inhibitions avec sudo.

  3. Un seul utilisateur connecté via sshnécessite toujours sudo.

utilisateur535733
la source
Je pense que cela inclut un seul utilisateur connecté plusieurs fois.
mckenzm
6
Cela n'a rien à voir avec le nombre d'utilisateurs connectés. La possibilité de redémarrer sans utiliser sudodépend de la console de la machine. Si vous utilisez ssh sur une machine, vous ne pourrez toujours pas la redémarrer sudo, même si vous êtes le seul utilisateur connecté. Inversement, si vous êtes sur la console, vous pouvez toujours redémarrer sans sudoque les autres utilisateurs soient connectés. connecté à distance.
Dave Sherohman
1
@ DaveSherohman: Ce n'est pas forcément vrai - systemd utilise toujours des actions polkit distinctes selon que vous êtes la seule personne connectée ou qu'il y en a plusieurs. Cela signifie que la distribution (ou l'administrateur système) pourrait très facilement les faire se comporter différemment.
Grawity
21

Sur ma machine 14.04, lorsque je tape (en tant qu’utilisateur normal) reboot, je reçois

reboot: Need to be root

C'est la différence.

Comme Terrance l'a souligné dans les commentaires, cela fonctionne différemment sur les systèmes plus récents que les miens. Donc, vous voyez probablement d'anciens écrits et / ou des utilisateurs (comme moi) habitués à la dactylographie sudo reboot!

Marbre organique
la source
Intéressant! Ce que je me demande maintenant, c’est si quelque chose a changé entre le 14.04 et le 17.10 pour faire en sorte que vous n’ayez pas besoin d’être root reboot, ou s’il existe d’autres facteurs en jeu dans mon système qui changent cela.
Zeke Egherman
3
@ ZekeEgherman Je pense en fait que la différence est apparue lorsqu'ils sont passés d'Upstart à Systemd pour les commandes. Lorsque je regarde ma commande de redémarrage, il pointe vers un lien /bin/systemctl. Vous pouvez vérifier le vôtre en tapant ls -al $(which reboot).
Terrance
@terrance, je vois aussi le lien vers /bin/systemct1, quelle version êtes-vous?
Zeke Egherman
C'est intéressant! Je viens de l'essayer sur ma machine virtuelle préliminaire 18.04, et cela fonctionne comme vous le dites. @Terrance, je pense que vous devriez écrire la vraie réponse.
Organic Marble
@ ZekeEgherman 16.04. Ubuntu est passé à Systemd à 15.04. Donc, 14.04 serait toujours Upstart then ou initd si c'est ce que vous voulez appeler.
Terrance
8

sudo rebootest utilisé dans les tutoriels / procédures pour des raisons de compatibilité

Alors que reboot pourrait travailler

  • si vous êtes root ou
  • si vous êtes sur un hôte avec systemd et
  • si aucune application ne bloque un redémarrage

sudo reboottravaillera " toujours " *, indépendamment de

  • si vous êtes root
  • s'il y a d'autres utilisateurs connectés
  • s'il y a des applications bloquant
  • si init est systemd, System V, Upstart, peu importe

* Eh bien, il va certainement essayer - à moins que certains processus du noyau qui le bloquent / se conduisent mal devraient fonctionner.

Robert Riedl
la source
Cela fonctionnera toujours… si sudo est installé.
Ave
7

Pour ma part, si je tape souvent, rebootcela ne me laissera pas à cause des inhibiteurs de Chrome lorsque je regarde YouTube et d’autres onglets ouverts. Je suis donc obligé d'utiliser un sudo rebootplus gros marteau.

Ceci dans Ubuntu 16.04

WinEunuuchs2Unix
la source
4

Merci pour la discussion, je suis heureux de comprendre cela maintenant!

Comme Terrance l’a mentionné, dans la version 15.04, ils sont passés de Upstart à Systemd pour les commandes. Cette modification signifie que les rebootprivilèges root ne sont plus nécessaires.

Pour ce qui est des raisons pour lesquelles la communauté * nix demande sudo reboot, il y a plusieurs raisons possibles:

  • Habit - Les gens étaient tellement habitués à devoir sudo rebootredémarrer qu'ils continuent à le faire malgré le fait que ce n'est pas nécessaire
  • Utilisateurs non mis à jour - Les personnes qui donnent l’instruction sudo rebootsont sur des versions d’Ubuntu inférieures à 15.04, ou sur d’autres distributions utilisant Upstart pour les commandes.

  • Compatibilité - C’est ce qui me semble le plus plausible: les gens le demandent, sudo rebootcar il est garanti qu’il redémarre sur tous les systèmes * nix, peu importe le choix.

Note complémentaire: de user535733 s » réponse :

L’introduction de systemd dans 15.04 a changé la façon dont Ubuntu gère l’arrêt et le redémarrage:

  1. Lorsqu'un seul utilisateur est connecté, ce sudon'est pas nécessaire. Lorsque plus d'un utilisateur est connecté, il sudoest requis.

  2. Les applications peuvent empêcher l’arrêt et le redémarrage. Vous substituez ces inhibitions avec sudo.

Zeke Egherman
la source