GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Pourquoi avons-nous besoin d'être root dans le terminal pour l'arrêt et le redémarrage ?

Lorsque nous installons/supprimons/mettons à jour des packages ou apportons des modifications nécessitant des privilèges administratifs, nous sommes invités à entrer le mot de passe de l'utilisateur administrateur qui possède le sudo privilèges - cela se produit à la fois via l'interface graphique et le terminal.

Cependant, si nous essayons d'arrêter et de redémarrer via le terminal, il se plaint que nous devons être root :

$ reboot
reboot: Need to be root

$ shutdown now
shutdown: Need to be root

Mais on ne nous demande jamais de mot de passe lorsque nous effectuons ces actions via la roue dentée en haut à droite.

Pourquoi y a-t-il cet écart ?

Meilleure réponse

L'arrêt sur la roue dentée vérifie si vous êtes autorisé à arrêter la machine. Cela se fait via PolicyKit. En cas d'arrêt cette déclaration dans le fichier /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy est cochée :

<action id="org.freedesktop.consolekit.system.stop">
  <description>Stop the system</description>
  <message>System policy prevents stopping the system</message>
  <defaults>
    <allow_inactive>no</allow_inactive>
    <allow_active>yes</allow_active>
  </defaults>
</action>

Le PolicyKit déclenche un dbus-send commande. En cas d'arrêt, ce serait :

dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

Un démon s'exécute en arrière-plan avec des privilèges root qui appelle la commande shutdown pour vous.

Lorsque vous souhaitez pouvoir éteindre la machine "à l'ancienne" via la ligne de commande (shutdown, reboot, halt, ... ), alors vous devez ajouter le suid-Bit à ces commandes. Mais sachez que toute personne sur votre système ayant accès au shell pourrait alors arrêter votre machine.


Ubuntu
  1. Pourquoi vous devez supprimer ifconfig pour ip

  2. Hachage de mot de passe et pourquoi nous en avons besoin

  3. Installer et utiliser Guake - Un émulateur de terminal déroulant pour Debian 10

  4. Pourquoi l'utilisateur racine a-t-il besoin d'une autorisation Sudo ?

  5. Pourquoi utilisons-nous su - et pas seulement su ?

Ouvrir le terminal en tant que root sur Ubuntu 20.04 Focal Fossa

13 conseils pour régler et optimiser les bases de données Mysql et Mariadb

Installer et utiliser Guake - Un émulateur de terminal déroulant pour Ubuntu

Ubuntu – Terminal Vintage pour Ubuntu ?

Comment exécuter le terminal en tant que root ?

Outil Gui pour afficher et gérer la file d'attente d'impression ?