Czy istnieje łatwiejszy lub bardziej „poprawny” sposób na otwarcie gedit jako root?


19

Mam Ubuntu 12.04 działający na maszynie wirtualnej na wirtualnym pudełku. Jego istnienie jest głównie „zabawką” do zabawy z Ubuntu, dlatego z tego powodu chciałem GUI (czy to, co „Dash” jest w Ubuntu 12.04? W każdym razie ...)

Jedną z rzeczy, z których obecnie korzystam na tym komputerze, jest serwer LAMP. Używam „gedit” do edycji moich plików, ale ponieważ nie ustawiłem jeszcze poprawnie uprawnień, po prostu otwieram je za pomocą sudo w terminalu.

Właśnie teraz, aby uprościć ten proces, stworzyłem skrypt powłoki na pulpicie z bardzo prostym zadaniem - sudo gedit

Nie mogę przestać myśleć, że musi istnieć jeszcze bardziej oczywisty sposób, aby otworzyć gedit jako root z GUI niż ten. Jest tam

Edycja: Właśnie „poprawiłem” mój skrypt, zastępując sudo gksudo. Teraz nie muszę mieć otwartego okna terminala, gdy gedit jest otwarty. Sądzę więc, że na razie jest to całkiem wygodne :) Dla dobra byłoby dobrze wiedzieć, czy jest to coś bliskiego temu, jak bardziej doświadczeni użytkownicy ubuntu zrobiliby takie rzeczy.


2
Tak, gksudo(lub bardziej powszechnie znany jako gksu) to, czego używa większość ludzi. Dużo materiałów do czytania: askubuntu.com/questions/270006/… askubuntu.com/questions/197772/... askubuntu.com/questions/284306/… askubuntu.com/questions/11760/...
Seth

2
Seth, czy zechciałbyś opublikować swoją odpowiedź jako odpowiedź? To wygląda na rozwiązane.
Travis G.,

„Teraz nie muszę mieć otwartego okna terminala, gdy gedit jest otwarty”. <- Być może już o tym wiesz, ale jeśli dołączasz &do polecenia, jak pokazano tutaj , zezwalasz, aby okno terminala skryptu powłoki zamykało się natychmiast po gedituruchomieniu zamiast czekać na jego zamknięcie. Ta sztuczka powinna działać gksudobez problemów.
IQAndreas

Odpowiedzi:


19

Zastosowanie gksudo gedit.

gksudojest odpowiednikiem sudoprogramów graficznych, których uruchomienie nie jest bezpieczne sudo.


4
Problem w tym, że gksunie jest już domyślnie instalowany w Ubuntu 13.04. Bardzo chciałbym zobaczyć odpowiedź dla osób w wieku 13.04+. Sugerowana alternatywa to pkexec, ale to po prostu nie działa = /.
Alaa Ali

1
@Alaa Ale wciąż jest w repozytorium, więc szybko sudo apt-get install gksugo zainstaluj.
IQAndreas

Jeśli chcesz wyjaśnić, dlaczego nie zaleca się używania sudo: Jaka jest różnica między „gksudo nautilus” a „sudo nautilus”?
IQAndreas,

4
@IQAndreas, wiem, że jest w repozytoriach, ale jest to po prostu niewygodne, jeśli odpowiadam nowemu użytkownikowi i chcę, aby edytował plik jako root, aby powiedzieć mu „najpierw, uruchom sudo apt-get install gksu”. W tej chwili jest to dylemat, przynajmniej dla mnie. Nie mogę powiedzieć, żeby „użytkowania pkexec”, ponieważ to nie działa, a to zbyt ryzykowne sudo -iwtedy gedit. Znam też różnicę między gksudoi sudo=), do czego mogłeś mnie powiązać, to: Dlaczego gksu nie jest już domyślnie instalowany w 13.04? .
Alaa Ali,

@Alaa Ważny punkt dotyczący apt-get. Właściwie mój drugi komentarz (ten z linkiem) był skierowany na udzieloną odpowiedź, a nie kontynuację dyskusji w komentarzach (pomyślałem, że plakat może chcieć poznać powód, dla którego „korzystanie z niego nie jest bezpieczne” sudo ”).
IQAndreas,

7

geditCzęsto uruchamiam się jako root, więc dodałem opcję do menu po kliknięciu prawym przyciskiem myszy w Unity (używa tego samego polecenia co wybrana odpowiedź gksu gedit).

Będziesz musiał edytować *.desktopplik, aby dodać opcję menu, i masz dwie możliwości:

  • /usr/share/applications/gedit.desktop (wymaga uprawnień roota do edycji) - Opcja menu zostanie dodana dla wszystkich użytkowników. Pamiętaj, że może być konieczna ponowna edycja tego pliku, dodając opcję, jeśli wystąpi aktualizacja programu gedit, która zastąpi wprowadzone zmiany.
  • ~/.local/share/applications/gedit.desktop (Jeśli nie możesz go tam znaleźć, zrób kopię tego, co znaleziono w /usr/share/applications/i zapisz w nowej lokalizacji) - Opcja menu będzie dostępna tylko dla określonego użytkownika i jest uważana za „lepszą praktykę”. Zauważ, że jeśli już go zadokowałeś na pasku Unity, musisz wybrać Unlock from Launcheristniejącą ikonę GEdit, a następnie ponownie dodać swoją „niestandardową” wersję. Zmiany te powinny pozostać, nawet jeśli GEdit otrzyma aktualizację.

Edytuj plik tekstowy gedit.desktop, dodając następujący blok kodu (możesz użyć istniejących dwóch bloków jako szablonu):

[Desktop Action RootWindow]
Name=Open a Root Window
Exec=gksu gedit
OnlyShowIn=Unity;

Następnie dodaj nową akcję do listy (powinna znajdować się w około linii 19 pliku tekstowego):

Actions=Window;Document;RootWindow;

Teraz klikając prawym przyciskiem myszy okno edytora tekstu w Unity, pojawia się ta przydatna nowa opcja:

Ubuntu Unity: Otwórz Gedit jako root


Mam również taką samą konfigurację do otwierania menedżera plików, jak root, który działa gksu nautilus.
IQAndreas

2

gksudo geditdziała w 16.04 LTS, ale w 17.10 z Wayland gksudonie działa.


2

Użyj admin://przed nazwą pliku, która wyświetla standardowe zapytanie o hasło GUI dla odpowiedniej WM / shell.

Na przykład, jeśli chcesz edytować swoje repozytorium, zamiast pisać sudo gedit /etc/apt/sources.list, piszesz gedit admin:///etc/apt/sources.list. Działa w zasadzie dla wszystkich programów GUI, nie tylko Gedit.


Ta odpowiedź to właściwy sposób, aby to zrobić teraz. Przyjęta odpowiedź była poprawna dla poprzednich wersji Ubuntu (myślę, że przed 17.04).
PJ Singh,

0

Możesz otworzyć Nautilus jako root, gksu nautilusteraz każdy plik tekstowy otwierany z tego okna otworzy się w Gedit jako root.


@DavidFoerster niezupełnie, imo :-)
guntbert

0

gksudonajwyraźniej nie jest dostępny w nowszych wersjach Ubuntu i gksunie działał dla mnie, ale ta odpowiedź była bardzo pomocna w moim przypadku (Ubuntu 17.04).

Użyj, visudoaby dodać następujący wiersz do pliku konfiguracyjnego sudo:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.