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.