Jaka jest różnica między „gksudo nautilus” a „sudo nautilus”?

100

Używam gksudo nautilusi sudo nautilusprzez Alt+ F2.

Co za różnica? Wyglądają bardzo podobnie!

DrKenobi
źródło
bardzo pomocne wyjaśnienie / dyskusja, w tym wiele zrzutów ekranu: psychocats.net/ubuntu/graphicalsudo
orzechowe o natty

Odpowiedzi:

113

Pobrano stąd :

Nigdy nie należy używać normalnego sudodo uruchamiania aplikacji graficznych jako root. Powinieneś używać gksudo( kdesudona Kubuntu) do uruchamiania takich programów. gksudoustawia HOME=/rooti kopiuje .Xauthoritydo tmpkatalogu. Zapobiega to posiadaniu plików w twoim katalogu domowym przez root.

Uwaga: chodzi przede wszystkim o pliki konfiguracyjne . Jeśli uruchomisz Nautilus as root, nawet z gksu/ gksudo, i utworzysz z nim plik lub folder w dowolnym miejscu (w tym w katalogu domowym), ten plik lub folder będzie własnością root. Ale jeśli uruchomić Nautilus (lub większość innych aplikacji graficznych), jak rootz sudo, mogą zapisywać swoje pliki konfiguracyjne w katalogu domowym (a nie rootkatalog domowy). Te pliki konfiguracyjne mogą być własnością rooti niedostępne, gdy nie działasz jako root, co może poważnie zepsuć twoje ustawienia, a nawet może całkowicie uniemożliwić działanie niektórych aplikacji.

Po popełnieniu tego błędu rozwiązaniem jest znalezienie plików konfiguracyjnych i usunięcie ich lub chownpowrót do przynależności do użytkownika niebędącego rootużytkownikiem. Wiele takich plików zaczyna się od a .lub znajduje się w katalogu rozpoczynającym się od .. Niektóre znajdują się w .configfolderze w katalogu domowym. Aby zobaczyć pliki i foldery zaczynające się na .w Nautilus, naciśnij Ctrl+ H( pokazuje ukryte pliki .) Aby je zobaczyć ls, użyj flagi -a(lub -A).

Aby sprawdzić, czy w twoim katalogu domowym znajdują się pliki, których nie jesteś właścicielem, możesz użyć następującego polecenia w terminalu:

find $HOME -not -user $USER -exec ls -lad {} \;

która wyświetli listę wszystkich plików w katalogu domowym, które nie są własnością użytkownika.

Rmano
źródło
1
Użyłem już „sudo nautilus”. Oznacza to, że mój katalog domowy jest teraz własnością root? (PS: mój angielski nie jest doskonały)
DrKenobi,
22
Nie, oznacza to, że gdy korzystałeś z Nautilusa jako root, wszelkie pliki, które utworzył w twoim katalogu domowym, będą własnością root. Może to obejmować miniatury i inne pliki pomocnicze tworzone przez Nautilus.
Ryan Thompson,
1
. Cytowany przez ciebie segemnet zaskoczył mnie od pierwszego czytania; w szczególności tam, gdzie jest napisane: „Zapobiega to przechodzeniu plików w twoim katalogu domowym przez root”. .. Testowałem to dzisiaj, tworząc niektóre pliki testowe, 10.04, 10.04 (VM), 10.10 (VM) i bez względu na to, jak uruchomiłem sudo / gksudo (Terminal-> Nautilus, Terminal-> gedit, Alt + F2 .. .) ... wszystkie przypadki spowodowały, że mój nowo stworzony został własnością „root”, z grupą „root”. Może coś przeoczyłem, ale myślę, że ta część cytowanego segmentu wprowadza w błąd ludzi…
Peter. O
Hmm, właśnie cytowałem stronę wiki. Tak naprawdę nie mam głębokiego zrozumienia różnicy między tymi dwoma narzędziami. Być może ktoś może pomóc na unix.stakexchange.com ?
2
@ Peter.O Rozszerzyłem tę odpowiedź, aby odpowiedzieć na to pytanie i wyjaśnić, które pliki są traktowane inaczej za sudopomocą gksu/ gksudo. (@ChrisWilson Zapraszam do wycofania lub skrócenia tej edycji, jeśli uważasz, że nie jest ona całkowicie objęta twoją odpowiedzią ... wydaje mi się, że tak, ale to całkowicie twój telefon.)
Eliah Kagan
9

Czy wiesz, że istnieje dodatek Nautilus o nazwie nautilus-gksu,Zainstaluj nautilus-gksu który dodaje opcję „otwórz jako administrator” do menu prawego przycisku nautilusa?

Uwaga: Niedostępne w systemie Ubuntu 12.04 i nowszych.

robin0800
źródło
1
nautilus-gksunie jest już dostępny od wersji Ubuntu 12.04 i nowszych.
IQAndreas
A twój link pokazuje tylko, że jest dostępny do 11.10 ...
Wilf
5

Jeśli uruchomisz aplikację graficzną za pomocą sudo, możesz zepsuć własność plików, co może spowodować uszkodzenie aplikacji. Nigdy tego nie rób. Sprawdź pomoc społeczności :

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 posiadaniu plików w twoim katalogu domowym przez Root. (AFAICT, to wszystko, co jest szczególne w środowisku uruchomionego procesu z gksudo vs. sudo).

desgua
źródło
3

sudo domyślnie zachowuje zmienną $ HOME. Na przykład, jeśli uruchomisz sudo firefox, będziesz działał z uprawnieniami roota, ale z konfiguracją. Jeśli zmienisz ustawienia w tej sytuacji, skończysz z częściami konfiguracji należącymi do użytkownika root zamiast identyfikatora użytkownika.

Mark Russell
źródło
Podoba mi się asertywność tej odpowiedzi.
Andre Figueiredo,
2

sudo -H GUI-application-program

W Ubuntu (17.10) 17.10.1 i prawdopodobnie przyszłych wersjach Ubuntu, gksui gksudosą przestarzałe. Pracują w Xorg, ale nie w Wayland. Możesz jednak używać go sudo -Hdo uruchamiania aplikacji GUI bez uszkodzenia plików konfiguracyjnych. Czy nie używać zwykłego sudo.

Jeśli korzystasz z Waylanda (nowego systemu graficznego zastępującego Xorg), potrzebujesz także polecenia xhost.

xhost +si:localuser:root       # if Wayland
sudo -H nautilus --no-desktop

Zobacz poniższy link, aby uzyskać więcej informacji,

Dlaczego gksu / gksudo lub uruchomienie aplikacji graficznej z sudo nie działa z Waylandem?

sudodus
źródło
-2

Znaleziono w pliku wygenerowanym przez komendę terminalową „info gksudo”:

gksu to nakładka na su, a gksudo to nakładka na sudo. Ich głównym celem jest uruchamianie poleceń graficznych wymagających rootowania bez potrzeby uruchamiania emulatora terminala X i bezpośredniego używania su.

Odkryłem, że w wielu przypadkach pliki „informacyjne” zawierają pomocne opisy, a także przydatne informacje o opcjach. Zdecydowanie zasugerowałbym, że nauka o dowolnym poleceniu zaczyna się od uzyskania dostępu do pliku „info” na tym poleceniu.

Dla początkującego w terminalu wpisz lub wklej informacje o poleceniu z nazwą polecenia, którym jesteś zainteresowany, jako parametr. Format to info [command_name](pamiętaj, aby nie dołączać wiersza polecenia ani nawiasów). Sugerowane wpisy terminala dla początkujących to:

$ info
$ info info
James
źródło
-3

Jeśli wybierzesz gksudo nautilus, poprosisz o hasło w formie graficznej. W sudo pytasz o to w terminalu

winniemiel05
źródło
6
To nie jedyna różnica i często nie jest najważniejsza. (Zobacz niektóre inne odpowiedzi tutaj.)
Eliah Kagan