Cóż, może to fantazja, ale wiele osób mówi to samo:
Dlaczego powinienem używać gksudo dla aplikacji Gtk zamiast sudo?
Są jednak inne czasy, kiedy skutki uboczne mogą być tak łagodne, jak rozszerzenia przeglądarki Firefox nie przylegają lub tak ekstremalne, jak niemożność zalogowania się, ponieważ uprawnienia do .ICEauthority uległy zmianie.
Dlaczego użytkownicy nigdy nie powinni używać normalnego sudo do uruchamiania aplikacji graficznych?
Załóżmy, że używasz gedit (graficzny edytor tekstu) jako root. Jeśli uruchomisz sudo gedit, HOME nadal będzie wskazywać na twój katalog domowy, nawet jeśli program działa jako root. W związku z tym gedit zapisze pliki konfiguracyjne jako root w twoim katalogu domowym. Czasami spowoduje to, że pliki konfiguracyjne będą własnością root, a przez to będą niedostępne dla ciebie (kiedy później uruchomisz program jako ty, a nie jako root).
Jak uruchomić program GUI jako inny użytkownik (Debian)?
Po pierwsze, nie używaj sudo ani su do zmieniania użytkowników w celu uruchomienia procesu graficznego, ponieważ możesz mieć problemy w dalszej kolejności (~ / .ICEautoryzacja zmieniająca właściciela to znaczący problem). Zamiast tego utwórz skrót, który używa następującego polecenia:
Uruchamianie Sudo graficznie
Cóż, szczerze mówiąc, w większości przypadków tak nie jest. W przypadku wielu aplikacji możesz uruchomić je w niewłaściwy sposób - używając sudo do aplikacji graficznych i nie zauważając żadnych niepożądanych efektów ubocznych.
...
Te błędy występują, ponieważ czasami podczas sudo
uruchamiania aplikacji uruchamia się z uprawnieniami administratora, ale korzysta z pliku konfiguracyjnego użytkownika.
To archiwum poczty może Cię również zainteresować.
Przetestujmy to.
2 nowe wirtualne pudełka. Ubuntu 14.04. Nigdy nie uruchamiaj na nich firefox. Co się stanie, gdy uruchomię polecenie sudo firefox
?
tim@Hairy14CVB:~$ sudo firefox
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
...
shutdownObserver@XPIProvider.jsm:2192:13
Jest to to samo (lub przynajmniej bardzo podobne) dla obu wirtualnych urządzeń. Podczas działania firefoxa zainstalowałem rozszerzenie youtube - polecane. Następnie zamknąłem firefoxa i sprawdziłem wyjście.
tim@Hairy14CVB:~$ ls -la .ICEauthority
-rw------- 1 tim tim 1336 Jun 4 21:31 .ICEauthority
Cóż, w .ICEauthority
porządku! Jednak...
tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 Jun 1 20:49 ..
drwx------ 3 root root 4096 Jun 5 22:41 .dbus
drwx------ 4 root root 4096 Jun 5 22:41 .mozilla
3 rzeczy w moim katalogu domowym ( /home/tim/
) są root ( ..
, .dbus
i .mozilla
). Jest to to samo (lub przynajmniej bardzo podobne) dla obu wirtualnych urządzeń.
Czy to ma znaczenie. Nie byłem pewien, więc uruchomiłem firefoxa w następujący sposób:
tim@Hairy14CVB:~$ firefox
(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.
I ten brzydki błąd:
Aby uzyskać pełne dane wyjściowe na terminalu (w tym bełkot firefox), zobacz te dwie pastebiny, tutaj i tutaj .
Nawiasem mówiąc, nadal mogę uruchomić Firefoxa jako root. Ale teraz więcej plików zostało zmienionych:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
drwx------ 3 root root 4096 Jun 5 22:55 .adobe
drwx------ 3 root root 4096 Jun 5 22:40 .dbus
drwx------ 3 root root 4096 Jun 5 22:55 .macromedia
drwx------ 4 root root 4096 Jun 5 22:40 .mozilla
Czy to dlatego, że przesłałem zdjęcie na imgur.com? Niepewny.
Jak to naprawiłem? chown
. Nie rozumiem tego, ale internet kazał to zrobić, a to wirtualne pudełko, więc yolo.
sudo chown -R tim:tim /home/tim/
I to naprawiło. Teraz dane wyjściowe to tylko ..
plik:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
Tak samo jest na moim komputerze. Aha, i na mojej wirtualnej skrzynce Kubuntu:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 May 16 14:10 ..
Na którym nigdy nawet nie uruchomiłem polecenia sudo. Więc wszystko jest dobrze. Po prostu nie uruchamiaj sudo
aplikacji GUI.
Test końcowy: uruchom go z -H
a -i
flagi:
sudo -H firefox
i
sudo -i firefox
I dobre wieści! Jednak jedyną „rzeczą” roota jest ..
. I mogę uruchomić firefox
bez rootowania.
OP chce, żebym mówił o Gedicie.
Pobiegłem
sudo gedit
Następnie zainstalowałem losowe wtyczki. To był wynik:
tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
Pamiętaj, że nie mogę nawet wyświetlić własności, .gvfs
więc zrobiłem to:
tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
dr-x------ 2 root root 0 Jun 6 10:05 .gvfs
Tak więc uruchamianie sudo gedit
zmienia plik w moim katalogu domowym na root.
Nadal mogę otworzyć gedit, ale tym razem wyrzucam śmieci:
(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at `/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.
To sugeruje, że istnieje inny plik ( ~.local/share/recently-used.xbel
), który został zmieniony. Myślę, że jest to ostatnio używana lista plików i (zgaduję, że nie mam już mojej listy ostatnio używanych plików)
Powinien tam być plik o nazwie output2.txt.save2
. Moje zaimki to On / On