Nie można otworzyć Gedit jako root

15

Po uruchomieniu sudo gedit /path/to/some/random/filepojawia się następujący błąd

** (gedit:6262): WARNING **: Command line `dbus-launch --autolaunch=7f8731869e1c690b8205727e0000000a --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.
Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Używanie gksudonie pomaga w żadnym zwrocie

Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Każda pomoc chłopaki. Potrzebuję tej możliwości, aby otwierać pliki w Gedit jako root.
Znalazłem to pytanie z tym samym błędem, ale brak rozwiązania Nie można uruchomić gedit z sudo


EDYTUJ
Znalazłem ten post na forach Ubuntu .
Oto instrukcje:

  1. echo $ DISPLAY # będziesz potrzebował tej wartości 3 linie poniżej
  2. sudo -i # lub „su -” na starszych Slackwares
  3. xauth merge ~ alien / .Xauthority # użyj tutaj własnej nazwy użytkownika zamiast „alien”
  4. eksport DISPLAY =: 0,0 # użyj wartości DISPLAY, którą widziałeś 3 linie wcześniej

Po przejściu do komendy nr 3 dostałem ten błąd
xauth: file /root/.Xauthority does not exist

Może ta nowa informacja może rzucić więcej światła.

Parto
źródło
Próbowałeś gksudo gedit /path/to/the/file/namezamiast tego?
AzkerM
@AzkerMohamed Yah, jak mówi moje pytanie, używając gksudolub gksuzwraca ten sam błąd.
Parto
1
Wygląda na to samo, co ten askubuntu.com/questions/175611/…
user.dz
Stworzyłem w tym celu skrypt: gist.github.com/wachambo/bd22e12db2d5a46dc109bd0d553733be
Alejandro Blasco

Odpowiedzi:

13

Wreszcie znalazłem odpowiedź. Z tego pytania Nie można połączyć się z X Server podczas uruchamiania aplikacji za pomocą sudo, a zwłaszcza to pytanie Błąd podczas próby uruchomienia aplikacji za pomocą sudo lub gksudo .

Dodałem wiersz Defaults env_keep+="DISPLAY"na końcu visudopliku o /etc/sudoers.

Tak, mój sudo geditwrócił!

EDYTOWAĆ

Przez pewien czas pojawiał się ten sam błąd.

Zrobiłem więcej badań, szczególnie tę odpowiedź /ubuntu//a/137584/163331 i zdałem sobie sprawę, że muszę dodać więcej opcji do visudopliku. Zamiast tego Defaults env_keep+="DISPLAY"użyłem tej linii:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"
Parto
źródło
Po co dodawać HOME do env_keep?
muru
10

Uruchamianie dowolnych aplikacji interfejsu graficznego jako root może spowodować uszkodzenie pliku, szczególnie jeśli aplikacja graficzna jest edytorem tekstowym. Oprócz tego gksui gksudonie działa na uruchamianie aplikacji graficznych jako root w Wayland w Ubuntu 17.10: Dlaczego gksu / gksudo nie współpracuje z Waylandem? a pakiet gksu został usunięty z domyślnych repozytoriów Ubuntu w Ubuntu 18.04 i nowszych.

Nautilus Admin ( nautilus-admin ) to proste rozszerzenie Pythona dla menedżera plików Nautilus, które dodaje pewne czynności administracyjne do menu po kliknięciu prawym przyciskiem myszy:

  • Otwórz jako administrator: otwiera folder w nowym oknie Nautilus z uprawnieniami administratora (root).
  • Edytuj jako administrator: otwiera plik w oknie Gedit z uprawnieniami administratora (root).

Aby zainstalować Nautilus Admin we wszystkich obecnie obsługiwanych wersjach Ubuntu, otwórz terminal i wpisz:

sudo apt install nautilus-admin  

Chociaż istnieją polecenia do uruchamiania aplikacji graficznych jako root, zdecydowanie zaleca się stosowanie edytora nano-tekstowego, który zwykle jest uruchamiany z terminala, do edycji plików jako root. Edytor tekstu Nano jest zawarty w domyślnej instalacji Ubuntu.

Nano jest bardzo łatwy w użyciu. Instrukcje używania edytora nano znajdują się zawsze na dole każdej strony. Jedyne dwa skróty klawiaturowe nano, które musisz znać, to WriteOut i Exit. Naciśnij kombinację klawiszy Ctrl+, Oa następnie naciśnij, Enteraby zapisać edytowany plik. Naciśnij kombinację klawiszy Ctrl+, Xaby wyjść z nano.

Jeśli przyzwyczaisz się do edytowania plików jako root we właściwy sposób, ograniczysz możliwość popełniania błędów, których poprawianie może być bardzo czasochłonne.

Karel
źródło
2
+1 dla nanoedytora. Jeden z najlepszych edytorów, który dla każdego może być łatwiejszy w obsłudze.
AzkerM
@Karel W końcu użyłem nano, aby wprowadzić zmiany, ale potrzebuję mojego roota Gedit z powrotem.
Parto
2
To dobra rada, ale to nie jest odpowiedź. Linux faceci uwielbiają terminal, ale GUI jest świetny do złożonych zadań i ma lepszy UX.
azerafati,
Możesz dostosować domyślny edytor sudoeditpolecenia (domyślnie jest to nano): Jak mogę zmienić domyślny edytor polecenia sudoedit na vim? ale uruchamianie edytorów GUI jako root może powodować problemy w Ubuntu 17.10 i nowszych z Wayland.
karel
5

W Ubuntu 17.10 przynajmniej możesz to zrobić:

gedit admin:///path/to/some/random/file

Zostaniesz poproszony o podanie hasła, a następnie plik zostanie otwarty do edycji jako root.

Gunnar Hjalmarsson
źródło
Działa również poniżej 18.04 ...
Elder Geek
4

W przypadku gedit spróbuj tego:

sudo -H env DISPLAY=:0 gedit
kiri
źródło
1
Otrzymuję ten sam błąd.
Parto
1

Próbuję podsumować wszystkie informacje w innych odpowiedziach na tej stronie:

Wayland:

Jedyną opcją jest używana nanolubvi/vim

Xorg:

Spróbuj tego

sudo -H env DISPLAY=:0 gedit

jeśli to działa, prawdopodobnie oznacza to, że musisz dodać jakąś opcję do plików konfiguracyjnych sudo

sudo visudo

Spróbuj dodać tę linię na końcu

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
Postadelmaga
źródło
Po co dodawać HOME do env_keep?
muru
geditdziała dobrze w Wayland. Zobacz odpowiedź, którą właśnie opublikowałem.
Gunnar Hjalmarsson
0

Właśnie miałem podobny problem. Używam Debian Jessie i aby uruchomić gedit jako root, ta linia w końcu działała:

sudo -H gedit
Paul Free
źródło