Pourquoi sudo est nécessaire pour redémarrer le terminal mais pas depuis l'interface graphique?

10

Lorsque j'allume ma machine et que je me connecte à mon compte, je peux faire ce que je veux et même arrêter ma machine ou dire redémarrer.

Mais si je l' ouvre terminal et essayer d'exécuter la commande rebootou shutdownalors je dois avoir un accès root. Pourquoi cela est-il ainsi?

Je peux penser à certaines raisons pour lesquelles ce type de comportement comme pour vous peut être souhaitable, sshmais je n'en suis pas sûr, ou je peux manquer totalement un point.

Aman Deep Gautam
la source
Vérifiez dbuset votre environnement graphique (par exemple KDE ou gnome).
Hennes
Je pense que vous pouvez le faire sur tous gui, je veux juste savoir pourquoi une telle fonctionnalité de conception est là.
Aman Deep Gautam

Réponses:

7

C'est une caractéristique de sécurité.

Lorsque vous utilisez l'interface graphique, vous êtes (généralement) assis devant l'ordinateur sur lequel vous travaillez. Cependant, lorsque vous utilisez un terminal, vous pouvez être physiquement sur une machine et utiliser à distance une autre. Vous pouvez avoir de nombreuses fenêtres de terminal ouvertes sur de nombreuses machines différentes. Que se passe-t-il si vous tapez accidentellement reboot dans le mauvais? Cette action pourrait aller d'un désagrément à un désastre complet.

En utilisant sudo, il vous oblige à utiliser un mot de passe. Si vous tapez le mauvais mot de passe, cela vous donne une erreur et nous espérons que vous vous rendez compte que vous êtes dans le mauvais terminal. C'est pourquoi il est recommandé d'avoir un mot de passe root différent sur chaque serveur.

Keltari
la source
Je pensais aussi la même chose mais je voulais juste m'assurer que je ne manquais de rien .. :)
Aman Deep Gautam
1
J'ai vu plus de quelques administrateurs Unix supprimer le nom de l'ordinateur de leurs invites shell car cela prenait beaucoup de place et regrettait plus tard cette décision.
Keltari
Notez que ce n'est pas exactement une caractéristique de sécurité au sens entendu ici. Au démarrage d'Unix, vous n'aviez que des consoles (pas d'interface graphique). Et seul l'utilisateur root était autorisé à arrêter / redémarrer. C'est toujours comme ça. L'interface graphique contourne en utilisant le bit + s dans les fichiers. Bien que vous puissiez supprimer ceux de votre menu en utilisant ces commandes: askubuntu.com/questions/53308/…
Alexis Wilke
Je viens de voir ma machine virtuelle CentOS prétendre que «redémarrer» n'était pas une commande lorsque j'ai été su-ed en tant que root. J'ai tapé sudo rebootlà-bas et cela a fonctionné. Lorsque je SSH directement en tant que root, rebootfonctionne très bien. C'est étrange.
Steven Lu
@StevenLu Vérifiez vos chemins. ("echo $ {PATH}") Il est probable qu'un répertoire "sbin" ne se trouve pas dans votre chemin dans certains cas. Dans ce cas, l'étrangeté peut ne pas être liée à la commande de redémarrage. L'utilisation de "quel redémarrage" pourrait également aider à expliquer.
TOOGAM
0

Vous pouvez généralement redémarrer à partir du terminal en appuyant sur Ctrl + Alt + Suppr. Cela ne fonctionne pas à distance. (Le redémarrage à distance de l'interface graphique sans privilèges ne fonctionne pas non plus.)

Joshua
la source