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.
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, który dodaje opcję „otwórz jako administrator” do menu prawego przycisku nautilusa?
Uwaga: Niedostępne w systemie Ubuntu 12.04 i nowszych.
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).
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.
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,
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:
Odpowiedzi:
Pobrano stąd :
Uwaga: chodzi przede wszystkim o pliki konfiguracyjne . Jeśli uruchomisz Nautilus as
root
, nawet zgksu
/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), jakroot
zsudo
, mogą zapisywać swoje pliki konfiguracyjne w katalogu domowym (a nieroot
katalog domowy). Te pliki konfiguracyjne mogą być własnościąroot
i 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
chown
powrót do przynależności do użytkownika niebędącegoroot
użytkownikiem. Wiele takich plików zaczyna się od a.
lub znajduje się w katalogu rozpoczynającym się od.
. Niektóre znajdują się w.config
folderze 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:
która wyświetli listę wszystkich plików w katalogu domowym, które nie są własnością użytkownika.
źródło
sudo
pomocą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.)Czy wiesz, że istnieje dodatek Nautilus o nazwie 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.
źródło
nautilus-gksu
nie jest już dostępny od wersji Ubuntu 12.04 i nowszych.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 :
źródło
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.źródło
sudo -H GUI-application-program
W Ubuntu (17.10) 17.10.1 i prawdopodobnie przyszłych wersjach Ubuntu,
gksu
igksudo
są przestarzałe. Pracują w Xorg, ale nie w Wayland. Możesz jednak używać gosudo -H
do uruchamiania aplikacji GUI bez uszkodzenia plików konfiguracyjnych. Czy nie używać zwykłegosudo
.Jeśli korzystasz z Waylanda (nowego systemu graficznego zastępującego Xorg), potrzebujesz także polecenia
xhost
.Zobacz poniższy link, aby uzyskać więcej informacji,
Dlaczego gksu / gksudo lub uruchomienie aplikacji graficznej z sudo nie działa z Waylandem?
źródło
Znaleziono w pliku wygenerowanym przez komendę terminalową „info gksudo”:
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:źródło
Jeśli wybierzesz gksudo nautilus, poprosisz o hasło w formie graficznej. W sudo pytasz o to w terminalu
źródło