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, HOMEbędzie w dalszym ciągu wskazują ku swoim katalogu domowym, mimo że program jest uruchomiony jakoroot . W związku z tym geditzapisze 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 rootnie jest użytkownik).
To jest główny powód, dla którego powinieneś uruchamiać aplikacje graficzne z graficznym sudofrontendem, 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
-HFlag sprawia sudozestaw HOMEaby wskazywał root„s folderu domowego (co jest /root).
To wciąż nie obsłuży automatycznie własności .Xauthoritypoprzez skopiowanie go do folderu tymczasowego (to sudokolejna rzecz, którą zajmują się tobą nakładki graficzne ). Ale w rzadkich przypadkach, które .Xauthoritysą 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 .Xauthoritywł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, chownzapisują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.