Zainstalowałem Ubuntu 17.10. Teraz mam problem z gksu
:
$ gksu -dg synaptic
No ask_pass set, using default!
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
STARTUP_ID: gksu/synaptic/8760-0-alex-XPS-15-9530_TIME4974977
cmd[0]: /usr/bin/sudo
cmd[1]: -H
cmd[2]: -S
cmd[3]: -p
cmd[4]: GNOME_SUDO_PASS
cmd[5]: -u
cmd[6]: root
cmd[7]: --
cmd[8]: synaptic
buffer: -GNOME_SUDO_PASS-
brute force GNOME_SUDO_PASS ended...
Yeah, we're in...
Unable to init server: Could not connect: Connection refused
(synaptic:8767): Gtk-WARNING **: cannot open display: :1
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
xauth_env: (null)
dir: /tmp/libgksu-HgUjgQ
Jeśli nie używam -g
, okno dialogowe hasła jest wyłączone. Wygląda to na problem z tworzeniem tty dla roota.
Jakakolwiek rada?
gksudo
nie będzie działać w sesji Wayland , możesz przełączyć się na sesję Xorg i spróbować.gksu -dg synaptic
I tak nigdy nie powinieneś tego robić.Odpowiedzi:
Uwaga: ta odpowiedź jest specyficzna dla wersji Ubuntu korzystających z Wayland, 17.10 jest pierwszą wersją domyślnie używającą Wayland.
To funkcja, a nie błąd! Jest to cecha konstrukcyjna Wayland, że nie można uruchamiać aplikacji graficznych jako root z terminala.
Główne dyskusje odbywają się oczywiście na stronach Fedory. Zobacz błąd Fedory nr 1274451, a aplikacje graficzne nie mogą być uruchamiane jako root w Wayland (np. Gedit, beesu, gparted, nautilus) na Ask Fedora . Ale jest też trochę dyskusji na stronach Ubuntu ( Ubuntu Devs niepewnie domyślnie używa Waylanda w wersji 17.10 - OMG! Ubuntu ).
Raport o błędzie Ubuntu: Nie można uruchomić aplikacji pkexeced w sesji Wayland
Potencjalne obejście - jeśli edytujesz pliki systemowe za pomocą edytora graficznego (takiego jak gedit), użyj narzędzia wiersza poleceń, takiego jak
nano
lubvim
lubemacs
.nano
jest zazwyczaj łatwiejszy dla nowych użytkowników,vim
jest bardziej wydajny i ma więcej funkcji, zobacz ten poradnik Vima lub podobny.W każdym razie, jeśli naprawdę chcesz lub potrzebujesz uruchomić aplikacje graficzne jako root , ustaw
xhost
najpierw, który wymusza powrót do Xserver.Aby ustawić uprawnienia, uruchom:
Po zakończeniu usuń uprawnienia
Możesz dodać opcję graficzną / pulpitu, aby to zrobić zgodnie z tym raportem o błędach synaptycznych
Możesz dodać to polecenie xhost do .bashrc, ale radziłbym parę aliasów
Możesz nazywać aliasy, jak chcesz.
Aby uzyskać szczegółowe informacje, patrz:
Wróć z powrotem do Xorg
Jeśli wolisz Xorg z jakiegokolwiek powodu, możesz wybrać uruchamianie na Xorg podczas logowania
Zobacz Jak przełączyć się z Wayland z powrotem na Xorg w Ubuntu 17.10?
źródło
xhost +local:
Rozwiązania
W Wayland często trudno jest uruchamiać aplikacje GUI z podwyższonymi uprawnieniami (sudo -H, gksu ...). Dobrym pomysłem jest wykonywanie takich zadań za pomocą narzędzi wiersza poleceń.
Istnieją jednak obejścia, jeśli masz narzędzie GUI, które działa dobrze i wymaga podwyższonych uprawnień. (Używam dwóch takich standardowych narzędzi: Synaptic Package Manager
synaptic
i narzędzia do partycjonowania Gparted,.gparted
Używam MakeUSB również do tworzenia napędów rozruchowych USBmkusb
, ale może on uruchamiać części, które wymagają podniesionych uprawnień bez grafiki.)xhost
isudo -H
Istnieje obejście umożliwiające graficzne programy aplikacyjne będące własnością innych użytkowników niż zalogowany użytkownik w Wayland,
gksu
igksudo
nie są dołączone do standardowego Ubuntu i nie działają tutaj, ale działają w Xorg.Zamiast tego możesz użyć
Dobrym pomysłem jest zapobieganie graficznym programom aplikacyjnym, które są własnością innych użytkowników niż zalogowany użytkownik,
backend administratora gvfs
W Ubuntu 17.10 (gvfs> = 1.29.4) możesz użyć backendu administracyjnego gvfs. Zauważ, że potrzebujesz pełnej ścieżki,
Teoretycznie metoda administracyjna gvfs (która korzysta z polkit) jest lepsza i bezpieczniejsza (niż
xhost
ixudo -H
), niezależnie od używanego interfejsu użytkownika.Nie uruchamiasz całej aplikacji jako root. Eskalacja uprawnień ma miejsce tylko wtedy, gdy jest to absolutnie konieczne. Zobacz poniższy link i linki z niego,
Odpowiedź sisco311 w wątku na forum Ubuntu: „Która najlepsza praktyka używania gedit jako root?”
To jest post nr 4. Zobacz także post nr 6 w tym samym wątku.
nautilus-admin
Możliwe jest również użycie
nautilus-admin
do operacji na plikach z podwyższonymi uprawnieniami i użyciegedit
z podwyższonymi uprawnieniami. Jest to opisane w następującej odpowiedzi AskUbuntu,Tymczasowy dostęp użytkownika root do pulpitu Wayland za pośrednictwem funkcji
gks
Proszę unikać
sudo GUI-program
. Może to spowodować nadpisanie przez system plików konfiguracyjnych zwykłego identyfikatora użytkownikaroot
konfiguracją oraz ustawienie własności i uprawnień w celu dopasowaniaroot
i zablokowania zwykłego identyfikatora użytkownika. Powinieneś uruchomić aplikacje GUIsudo -H
, które zapisują pliki konfiguracyjne wroot
katalogu domowym/root
. Przykład:Ale istnieje ryzyko, że zapomnisz
-H
. Zamiast tego możesz na przykład utworzyć funkcjęgks
i przechowujcie go w
~/.bashrc
pobliżu pseudonimów. Potem możesz biecw podobny sposób jak
gksudo
wcześniej.Testowanie
Można sprawdzić, w jaki sposób
sudo
,sudo -H
agks
pracę z poniższych poleceńi oczywiście
zgodnie z przykładem w poprzedniej sekcji.
Metoda działająca poprzez Alt-F2 i menu Gnome Shell
Zamiast dodawać prostą funkcję jednowierszową
~/.bashrc
, możesz stworzyć system, który działa również bez basha. Może być wygodny w użyciu, ale jego konfiguracja jest bardziej skomplikowana. Zauważ, że powinieneś zainstalować tylko jedną z alternatyw, ponieważ funkcja jednowierszowa zakłóci korzystanie z tego bardziej skomplikowanego systemu.Trzy pliki
Skrypt
gks
:Plik na pulpicie
gks.desktop
:Plik ikony
gks.svg
wygląda następująco:Możesz pobrać plik ikony lub archiwum ze wszystkimi trzema plikami z tego linku,
wiki.ubuntu.com/Wayland/gks
Skopiuj [wyodrębnione lub skopiowane i wklejone] pliki do następujących lokalizacji,
Wyloguj się / zaloguj lub uruchom ponownie, a na pulpicie powinna znajdować się działająca ikona. Będzie działał z okna terminala, podobnie jak w przypadku prostego rozwiązania z funkcją.
Alt F2 pudełko:
Menu Gnome Shell:
Konsola gks i gparted:
Niestandardowy skrypt i plik na pulpicie
Jeśli masz tylko kilka aplikacji GUI, które wymagają podwyższonych uprawnień, możesz tworzyć dla nich niestandardowe skrypty i pliki pulpitu i unikać wpisywania polecenia (nazwy aplikacji). Podałbyś tylko hasło, co nie jest trudniejsze w porównaniu z poprzednimi wersjami Ubuntu (i tak powinieneś wpisać hasło).
Przykład z prostym programem GUI
xlogo
dostarczanym z pakietem programux11-apps
:Shellscript
gkslogo
(uproszczony w porównaniu dogks
),Plik na pulpicie
gkslogo.desktop
:Byłem leniwy i użyłem tego samego pliku ikon
gks.svg
Skopiuj pliki [skopiowane i wklejone] do następujących lokalizacji,
Konsola gks [logo] i xlogo:
źródło
/etc/xdg/autostart/xhost.destop
sugerowano również), ponieważ kończy się przywróceniem oryginalnego środowiska? I możemy bezpiecznie wymieniaćsudo -H
sięgksu
w alias tak aby użyć INSERT do .desktop plików, itp?sudo -H
zegksu
w funkcji, to może lepiej dla aplikacji.gks
skrótu, musiałem skonfigurowaćgsu
zestawy polis (nowa przyszłość dla16.04
) dlagedit
inautilus
. Kiedy pojawi się 18.04, myślę, że po prostuxhost +si...
nazwiemy skrypt otoki,gksu
którego nigdy nie instaluję z pakietów zaczynających się od18.04
.sudo -E gedit
. Obecnie występuje błądgdm
polegający na tym, że serwer zgodności Xwayland X11 nie obsługuje XAUTHORITY, co jest wymagane w przypadku aplikacji X11 działających jako root do działania. Natywne aplikacje Wayland działające jako root działają dobrze.Lepiej sprawdź, czy Wayland naprawdę działa jako pierwszy, zanim przyznasz rootowi prawo
źródło
Jeśli używasz Ubuntu 17.04 lub nowszej wersji, zaleca się użycie backendu administracyjnego gvfs . Po prostu dodaj admin: // na początku pełnej ścieżki pliku, którą chcesz otworzyć w aplikacji takiej jak Edytor tekstu lub aplikacje Pliki .
Na przykład, aby zmienić ustawienia rozruchu, otwórz
Ta metoda używa PolicyKit i nadal będzie działać z domyślnym Waylandem Ubuntu 17.10, podczas gdy sudo i gksu dla aplikacji GUI nie.
źródło
gedit admin:
), bardzo dziwnie z nautilusem (prawie bezużytecznym) i całkowicie nie powiodło się z synaptic . Jakieś pomysły?admin:///etc/
W przypadku aplikacji korzystających z su-to-root i pkexec możesz dodać ten kod do
/etc/xdg/autostart
(patrz mój komentarz na launchpad ) na własne ryzyko:Inne aplikacje root również są uszkodzone w Wayland (patrz błąd 1713313 i błąd 1713311 ).
Jeśli nie chcesz stałego rozwiązania, możesz użyć metody @ ravery's:
źródło
Jeśli aplikacja obsługuje Wayland API, możesz uruchomić ją jako root za pomocą
sudo -EH application
polecenia.Przełącznik -E mówi sudo, aby zachowało zmienne środowiskowe (a także WAYLAND_SOCKET i XDG_RUNTIME_DIR) potrzebne do aplikacji Wayland. Zawsze lepiej jest używać tej opcji w stosunku do paskudnego hacka xhost zaproponowanego w innych odpowiedziach. xhost pozwala aplikacji uruchamiać się z X-wrappera, co jest mniej bezpieczne niż korzystanie z Waylanda (wspólny schowek, keylogging itp.). Sztuczka sudo -EH nie będzie działać z aplikacją, która nie została przepisana dla Wayland, na przykład gparted, ale działałaby z gedit itp.
źródło
Właściwie następujący kod prawie działa:
(przepraszam za naiwny styl kodowania bash - jestem rodzajem początkującym w tym temacie). T nie działa stabilnie z Alt-F2, jeśli ostatni wybór nie był terminalem; w tym przypadku po prostu nie możemy ustawić fokusu w oknie dialogowym hasła. Wygląda na to, że działa z menu Gnome. W każdym razie <1. To nie jest 100% rozwiązanie. 2. Wydaje mi się, że architekci Ubuntu uważają, że nie powinniśmy przeszukiwać żadnych miejsc pracy.
źródło
"$@"
(zamiast"$1" "$2" ...
).