sudo vs gksudo. różnica?

37

Jaka jest różnica między sudoi gksudo?

oneat
źródło
1
Dobre pytanie. Uczę się teraz Linuksa (widać, że jeszcze nie znalazłem układu klawiatury) Haha!
r0ca

Odpowiedzi:

27

sudoprosi o gksudopodanie hasła w wierszu poleceń i wyświetla okno dialogowe.

Ignacio Vazquez-Abrams
źródło
6
gksu (do) ma także własną konfigurację zmiennych środowiskowych, które mają być przekazywane do dziecka, niezależnie od własnych su (do). Na przykład, jeśli twoja konfiguracja sudoers określa! Keep_env, brak $ DISPLAY może uniemożliwić uruchomienie aplikacji graficznych, ale gksudo powinno działać. Szczegółowe informacje można znaleźć na stronie git.debian.org/?p=users/kov/gksu-polkit.git;a=blob;f=common/… lub live.gnome.org/gksu .
ephemient
@ephemient Więc oprócz graficznego monitu, jest sudo -Erównoważne z gksudo?
izomorfizmy
3
odpowiedź poniżej wydaje się o wiele lepsza superuser.com/a/726249/112542
johny, dlaczego
4
Chcę podkreślić, że wcale nie jest to zasadnicza różnica, a odpowiedź ta jest dość myląca dla początkujących. Główna różnica została wyjaśniona tutaj: askubuntu.com/a/11766/81034, a poniższa odpowiedź (z którą łączy się @johnywhy) wykracza poza to, aby dodać trochę niuansów. Proszę przeczytać pytanie askubuntu zamiast polegać na tej wprowadzającej w błąd odpowiedzi.
Sundar - Przywróć Monikę
31

gksudoJest to nakładka GTK oparte na sudo(BTW, kdesudojest nakładka Qt bazie), jednak jest (domyślnie) uchwyty bardziej zmienne środowiskowe ( HOME, XAUTHORITYetc.) niż sudoczyniąc uruchomione polecenia jako root bezpieczniejsze.


O ile widzę tylko odpowiedź @Logics jest wystarczająco poprawna (@Ignacio Vazquez-Abrams nie jest kompletna). Oto próba uniknięcia wyjaśnienia odpowiedzi / komentarzy @Davros @knitti (prosimy o ich usunięcie / edycję, gdy nie jest to potrzebne):

  1. Chociaż oba polecenia są w rzeczywistości reprezentowane sudo, użyty interfejs użytkownika NIE jest jedyną różnicą między tymi dwoma poleceniami.
  2. Uruchomienie programu GUI NIE jest jedyną sytuacją, w której powinieneś użyć gk / kdesudo, zamiast tego powinieneś używać gk / kdesudo, gdy nie możesz ustalić, czy polecenie utworzy / zapisze pliki w twoim katalogu domowym (na które HOMEwskazuje zmienna środowiskowa w sudopolecenia w niektórych systemach i sytuacjach). Nie wszystkie aplikacje GUI zapisują do twojego katalogu domowego i nie wszystkie aplikacje CLI tego nie robią , więc typ polecenia nie jest kluczowy.
  3. Państwo nadal można używać sudopolecenia do aplikacji GUI uruchomienie jako root (do wyświetlania wyjścia konsoli aplikacjom jako przykład), jednak trzeba obsłużyć HOME(i inne, takie jak XAUTHORITY, DISPLAY, wprowdzanie związanej-stuff, etc.) Zmienne środowiskowe prawidłowo, tak że uruchomiona aplikacja nie zawiedzie, nie straci funkcjonalności ani nie zrobi naprawdę złych rzeczy. Oto moje aktualne zalecenie dotyczące używaniasudo
    • sudo -H <rest of the command>
      • (od sudostrony podręcznika sekcji 8) -H ( HOME )Opcja żąda, aby polityka bezpieczeństwa ustawiłaHOME zmienną środowiskową na katalog osobisty użytkownika docelowego (domyślnie root) zgodnie z bazą danych haseł. W zależności od zasad może to być zachowanie domyślne.
      • Powinno to przynajmniej zapobiec tworzeniu plików w sudokatalogu osobistym dzwoniącego
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Powinno to pozwolić <programowi GUI> wykonać się w terminalu TTY i wyświetlić go w środowisku pulpitu
  4. Zachowanie sudopolecenia nie jest identyczne we wszystkich systemach i można je skonfigurować za pomocą visudopolecenia, sprawdź stronę sudoers(5)podręcznika, aby uzyskać więcej informacji.
Vdragon
źródło
2
wydaje się znacznie lepszym wyjaśnieniem niż to, które zdobywa wszystkie głosy. dokładniejszy, bardziej poprawny. nawet OP odpowiedział „czy to wszystko?” na odpowiedź, która uzyskała wszystkie głosy.
Johnny, dlaczego
2

Używanie zwykłego sudo do uruchamiania programów graficznych w rzadkich przypadkach zepsuje uprawnienia do niektórych plików. Aby być bezpiecznym, należy używać gksudo (lub odpowiednio kdesudo) do uruchamiania programów z GUI. Myślę, że to naprawdę błąd, chociaż słyszałem wyjaśnienia, że ​​gksudo rozumie zmienne serwera X, a sudo prawdopodobnie nie prowadzi do problemów. Tak jak wskazówka; jeśli uruchamiasz programy graficzne jako root, zamiast otwierać jeden terminal dla każdego programu, który chcesz uruchomić, wpisz ALT-F2 (jednocześnie alt i klawisz funkcyjny 2), a następnie wpisz w wyskakującym oknie dialogowym „gksudo” program ”bez cudzysłowów i program zastąpiony przez aplikację, którą chcesz uruchomić.

Davros
źródło
2

sudo działa jako bieżący użytkownik z podwyższonymi uprawnieniami. Może to potencjalnie zmienić uprawnienia do plików niektórych plików konfiguracyjnych użytkownika (związanych ze środowiskiem graficznym) podczas uruchamiania aplikacji graficznych. Mogą wystąpić błędy występujące podczas ponownego uruchamiania tych aplikacji bez sudo.

gksudo (kdesudo pod KDE) uruchamia aplikacje jako użytkownik root, więc wszelkie uprawnienia do plików dotyczą plików użytkownika root, a nie plików użytkowników. ponowne uruchomienie tych aplikacji bez gksudo / kdesudo zawsze będzie miało oczekiwane zachowanie.

Logika
źródło
0

Aktualna odpowiedź jest niepoprawna. Według wiki Ubuntu RootSudo :

„Nigdy nie powinieneś używać normalnego sudo do uruchamiania aplikacji graficznych jako root. Powinieneś używać gksudo (kdesudo na Kubuntu) do uruchamiania takich programów. Gksudo ustawia HOME = ~ root i kopiuje .Xauthority do katalogu tmp. Zapobiega to plikom w twoim domu katalog staje się własnością root. (AFAICT, to wszystko, co jest szczególne w środowisku uruchomionego procesu z gksudo vs. sudo). ”

eugene1832
źródło
2
Istnieją cztery inne odpowiedzi; który jest niepoprawny? Czy twoja odpowiedź nie jest zasadniczo taka sama jak odpowiedź Davrosa?
fixer1234
Miałem na myśli odpowiedź oznaczoną jako poprawną. Tak, Davros mówi to samo, ale dodałem to, ponieważ jego nie zawierało linku do źródła.
eugene1832
1
Lepszym rozwiązaniem byłoby zaproponowanie edycji tej odpowiedzi. Poprawa odpowiedzi prawdopodobnie zostanie zaakceptowana (+2 powtórzenia), podczas gdy zasadniczo powielenie odpowiedzi może przyciągnąć głosy negatywne.
fixer1234