GNU/Linux >> Znalost Linux >  >> Ubuntu

Proč potřebujeme být root v terminálu pro vypnutí a restart?

Když instalujeme/odebíráme/aktualizujeme balíčky nebo provádíme změny, které vyžadují administrátorská oprávnění, jsme vyzváni k zadání hesla administrátora, který má sudo privilegia – to se děje přes GUI i terminál.

Pokud se však pokusíme vypnout a restartovat přes terminál, stěžuje si, že musíme být root :

$ reboot
reboot: Need to be root

$ shutdown now
shutdown: Need to be root

Ale když tyto akce provádíme pomocí ozubeného kolečka vpravo nahoře, nikdy nejsme požádáni o zadání hesla.

Proč je zde tento rozpor?

Nejlepší odpověď

Vypnutí na ozubeném kole kontroluje, zda máte povoleno vypnout stroj. To se provádí prostřednictvím PolicyKit. V případě vypnutí toto prohlášení v souboru /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy je zaškrtnuto:

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

PolicyKit spustí dbus-send příkaz. V případě vypnutí by to bylo:

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

Na pozadí běží démon s oprávněními root, který za vás vyvolá příkaz k vypnutí.

Když chcete mít možnost vypnout počítač „starým způsobem“ pomocí příkazového řádku (shutdown, reboot, halt, ... ), pak musíte k těmto příkazům přidat suid-Bit. Ale mějte na paměti, že každý ve vašem systému, který má přístup k shellu, by mohl váš počítač vypnout.


Ubuntu
  1. Proč mě moje potřeba kontroly přiměla přejít na Linux

  2. Proč potřebujete vypustit ifconfig pro ip

  3. Hašování hesel a proč to potřebujeme

  1. Nainstalujte a používejte Guake – rozevírací terminálový emulátor pro Debian 10

  2. Tput:Žádná hodnota pro $term a není specifikováno -t?

  3. Jak spustit terminál jako root?

  1. Only Root Can Mount, proč?

  2. 18.04:Proč Xorg i Xwayland?

  3. Proč používáme su – a nejen su?