GNU/Linux >> Znalost Linux >  >> Linux

sudo vs gksudo. rozdíl?

gksudo je rozhraní sudo založené na GTK (BTW, kdesudo je frontend založený na Qt, nicméně (ve výchozím nastavení) zpracovává více proměnných prostředí (HOME , XAUTHORITY , atd.) než sudo takže spouštění příkazů jako root je bezpečnější.

Pokud vidím, pouze odpověď @Logics je dostatečně správná (@Ignacio Vazquez-Abrams není úplná). Zde je pokus vyhnout se vysvětlení pro odpověď/komentáře @Davros @knitti (Pokud to není potřeba, laskavě je odstraňte/upravte):

  1. Ačkoli oba příkazy ve skutečnosti představují sudo , použité uživatelské rozhraní NENÍ jediným rozdílem mezi těmito dvěma příkazy.
  2. Spuštění programu GUI NENÍ jedinou situací, kdy byste měli použít gk/kdesudo, místo toho byste měli použít gk/kdesudo, kdykoli nemůžete určit, zda příkaz vytvoří/zapíše soubory do vašeho domovského adresáře (což je HOME Proměnná prostředí ukazuje na sudo příkaz v některých systémech a situacích). Ne všechny aplikace GUI zapisují do vašeho domovského adresáře a ne všechny aplikace CLI ne , takže typ příkazu není klíčovým bodem.
  3. Pořád můžete použijte sudo příkaz ke spouštění aplikací GUI jako root (pro zobrazení výstupu konzole aplikací jako příklad), ale musíte zvládnout HOME (a další, jako je XAUTHORITY , DISPLAY , input-method-related-stuff, atd.) environmentální proměnné správně, aby spuštěná aplikace neselhala, neztratila funkčnost nebo nedělala opravdu špatné věci. Níže je moje aktuální doporučení pro použití sudo
    • sudo -H <rest of the command>
      • (z sudo sekce 8 manuálová stránka) -H ( HOME ) volba vyžaduje, aby bezpečnostní politika nastavila HOME proměnnou prostředí do domovského adresáře cílového uživatele (standardně root), jak je určeno databází hesel. V závislosti na zásadách to může být výchozí chování.
      • To by mělo přinejmenším zabránit vytváření souborů v sudo domovský adresář volajícího
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • To by mělo umožnit spuštění v terminálu TTY a zobrazení ve vašem desktopovém prostředí
  4. Chování sudo příkaz není identický na všech systémech a lze jej konfigurovat pomocí visudo příkaz, podívejte se prosím na sudoers(5) manpage pro více informací.

sudo požádá o heslo na příkazovém řádku a gksudo zobrazí dialogové okno.


Používání běžného sudo ke spouštění grafických programů ve vzácných případech naruší oprávnění k některým souborům. Pro spouštění programů s GUI by se mělo používat gksudo (nebo kdesudo). Myslím, že je to opravdu chyba, i když jsem slyšel vysvětlení, že gksudo rozumí proměnným X serveru a sudo pravděpodobně nevede k problémům. Jen jako tip; pokud spouštíte grafické programy jako root, místo otevírání jednoho terminálu pro každý program, který chcete spustit, zadejte ALT-F2 (alt a funkční klávesa 2 současně) a poté zadejte do dialogového okna, které se objeví "gksudo program" bez uvozovek a programu nahrazeného aplikací, kterou chcete spustit.


Linux
  1. Jaký je rozdíl mezi Sudo Su – a Sudo Su –?

  2. Rozdíl mezi Update-grub a Update-grub2?

  3. sudo -k vs. sudo -K

  1. Df vs. Du:Proč tolik rozdílů??

  2. Rozdíl mezi uživatelem Sudo a uživatelem root?

  3. su - uživatel Vs sudo su - uživatel

  1. Je rozdíl mezi Sudo a Gksu stejný jako rozdíl mezi Sudo -i a Sudo -s?

  2. Přesunout soubor do domovského adresáře jiného uživatele (bez Sudo)?

  3. linux rozdíl mezi sudo crontab -e a jen crontab -e