Odpowiedzi:
sudo
prosi o gksudo
podanie hasła w wierszu poleceń i wyświetla okno dialogowe.
sudo -E
równoważne z gksudo
?
gksudo
Jest to nakładka GTK oparte na sudo
(BTW, kdesudo
jest nakładka Qt bazie), jednak jest (domyślnie) uchwyty bardziej zmienne środowiskowe ( HOME
, XAUTHORITY
etc.) niż sudo
czynią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):
sudo
, użyty interfejs użytkownika NIE jest jedyną różnicą między tymi dwoma poleceniami. HOME
wskazuje zmienna środowiskowa w sudo
polecenia 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. sudo
polecenia 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>
sudo
strony 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.sudo
katalogu osobistym dzwoniącegosudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
sudo
polecenia nie jest identyczne we wszystkich systemach i można je skonfigurować za pomocą visudo
polecenia, sprawdź stronę sudoers(5)
podręcznika, aby uzyskać więcej informacji.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ć.
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.
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). ”