Aplikacje graficzne często przechowują ustawienia i inne dane specyficzne dla użytkownika w plikach konfiguracyjnych zapisanych w folderze domowym użytkownika . Głównym mechanizmem używanym przez aplikacje do określania, czego powinny używać jako folderu domowego użytkownika, jest HOME
zmienna środowiskowa . (Możesz to sprawdzić samodzielnie echo $HOME
).
Załóżmy, że korzystasz gedit
(graficzny edytor tekstu) jako root
. Po uruchomieniu sudo gedit
, HOME
będzie w dalszym ciągu wskazują ku swoim katalogu domowym, mimo że program jest uruchomiony jakoroot
. W związku z tym gedit
zapisze pliki konfiguracyjne jakroot
w katalogu domowym. To czasami prowadzić w plikach konfiguracyjnych są posiadanych przezroot
a więc niedostępne dla ciebie (jeśli później uruchomić program jak siebie samego, a nie root
). Dzieje się tak głównie wtedy, gdy aplikacja musi utworzyć nowy plik konfiguracyjny. Nowo utworzone pliki są domyślnie własnością użytkownika, który je tworzy (którym w tym przypadku root
nie jest użytkownik).
To jest główny powód, dla którego powinieneś uruchamiać aplikacje graficzne z graficznym sudo
frontendem, a nie z prostym sudo
. W Ubuntu i większości jego pochodnych (w tym Xubuntu i Lubuntu) standardową graficzną nakładką jest gksu
/gksudo
. W Kubuntu tak jest kdesudo
. (Zależy to od używanego środowiska pulpitu ).
Jeśli chceszsudo
bezpośrednio używać aplikacji graficznej gedit
, możesz uruchomić:
sudo -H gedit
-H
Flag sprawia sudo
zestaw HOME
aby wskazywał root
„s folderu domowego (co jest /root
).
To wciąż nie obsłuży automatycznie własności .Xauthority
poprzez skopiowanie go do folderu tymczasowego (to sudo
kolejna rzecz, którą zajmują się tobą nakładki graficzne ). Ale w rzadkich przypadkach, które .Xauthority
są niedostępne, pojawi się błąd, mówiąc, że tak jest, a następnie możesz naprawić problem, usuwając go ( sudo rm ~/.Xauthority
), ponieważ jest on automatycznie regenerowany. Zatem ochrona .Xauthority
własności i uprawnień jest mniej ważna niż ochrona własności i uprawnień plików konfiguracyjnych.
W przeciwieństwie do root
-owned .Xauthority
, gdy pliki konfiguracyjne stać własnością jako root
, że nie zawsze jest tak oczywiste, na czym polega problem (ponieważ programy graficzne często biegać, ale nie działa bardzo dobrze, a wyjście żadnych użytecznych błędy konsoli). Czasami jest to większy problem do rozwiązania, zwłaszcza jeśli znajdujesz się w sytuacji, gdy chcesz, aby jeden lub więcej plików w katalogu domowym było własnością kogoś innego niż Ty (ponieważ wtedy nie możesz tego naprawić po prostu rekurencyjnie, chown
zapisując wszystkie swoje pliki powrót do siebie).
Dlatego sudo
(przynajmniej bez -H
) nie należy używać do uruchamiania aplikacji graficznej, chyba że dobrze znasz wewnętrzne działanie aplikacji i masz pewność, że nigdy nie próbuje ona pisać żadnych plików konfiguracyjnych.