Odwiedzanie starego tematu uruchamiania aplikacji X jako innego użytkownika pod Linuksem , ponieważ rozwiązaniem zawsze było dla mnie „ używaniegksu
”, ale dzisiaj, kiedy go potrzebuję i wypróbowałem, nie działa.
Podążając za gksu i dlaczego miałbyś go używać , próbowałem,
gksu -u otherusername xterm
Po przejściu okna dialogowego z prośbą o hasło otrzymałem:
$ gksu -u otherusername xterm
xterm: Xt error: Can't open display: :2
To znaczy, to nie działa dla mnie. Więc,
Jak uruchamiać aplikacje X jako inny użytkownik w systemie Linux? Dzięki.
PS, to jest Ubuntu 17.04:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 17.04
Release: 17.04
Codename: zesty
xauth
)? Musisz upoważnić „inne użycie” do korzystania z wyświetlania „pierwszego użytkownika”.xauth
i nie, nie wiem, jak autoryzować „inne użycie” do korzystania z wyświetlania „pierwszego użytkownika”, proszę o pomoc @dirkt, to musi być brakujący fragment odpowiedzi. Dzięki!Odpowiedzi:
Ubuntu 17, prawda? Czy na pewno prowadzisz Xorg, a nie Wayland ? (tzn. czy
ps auxfww
faktycznie pokazuje program o nazwieX
Uruchomiony?)Jeśli korzystasz z Waylanda - domyślnie byłbyś: dostęp do ekranu od użytkownika root nie jest dozwolony z powodu funkcji bezpieczeństwa (kaszel) (kaszel). Powiedzieli, że możesz obejść tę komendę, zanim spróbujesz uruchomić gksu:
Innym sposobem jest po prostu uruchomienie systemu Ubuntu z konwencjonalnym systemem wyświetlania Xorg; myślę, że możesz to ustawić podczas logowania .
Jednak nigdy nie korzystałem z Ubuntu 17 i zdecydowanie nie jestem użytkownikiem Wayland. Jest to prawdopodobnie jeden z powodów, dla których Ubuntu 18 / LTS powróci do domyślnego używania klasycznego Xorga .
Ważna uwaga: jeśli twoja inna nazwa użytkownika nie jest rootem , bez względu na to, że używasz Waylanda lub klasycznego Xorga, musisz uruchomić następujące polecenie przed uruchomieniem programu przez gksu:
AKTUALIZACJA:
Powyższe rozwiązanie nie działa dla Ubuntu 17.04 Xorg po wyjęciu z pudełka:
To wygląda , że Ubuntu Xorg „serwer nie jest zbudowany z SECURE_RPC wsparcia, więc stara się dodać FamilyNetname (0xfe) hosta nie powiedzie.”
Więc nie ma już gotowego rozwiązania dla Ubuntu (ale pozostaje to odpowiedzią, dopóki nie będzie działającego).
źródło
xhost
można z niego korzystać w ten sposób - znaj tylko toxhost +
, co jest uważane za niebezpieczne. Dzięki za odpowiedź xwindows! Witaj na pokładzie, z moim +25, :-)Sprawdź swoją
DISPLAY
zmienną środowiskową; wygląda na to, że nowy użytkownik próbuje użyć wyświetlacza:2
, który prawdopodobnie nie ma podłączonego serwera X.Możesz wypróbować coś takiego::
export DISPLAY=localhost:0.0
co powinno powiedzieć aplikacji X innego użytkownika, aby użyła serwera X bieżącego użytkownika. (Jestem prawie pewien, że to hack, ponieważ ta zmienna powinna zostać poprawnie skonfigurowana bez konieczności jej ustawiania, więcej szczegółów tutaj ).źródło
DISPLAY=':2'
, wierzcie lub nie, ale nie zamierzam wyjaśniać mojej skomplikowanej konfiguracji, więc w skrócie,export DISPLAY=localhost:0.0
nie będę tego przerywał, ponieważDISPLAY=':2'
działa dobrze dla wszystkich moich własnych aplikacji X. Ale dzięki za pomoc.przypisz do tego hasło
otheruser
. w imieniu administratora:passwd otheruser
Jeśli program sudo jest zainstalowany, dodaj następujący wiersz
/etc/sudoers
, na przykład:user ALL = (otheruser) ALL
pozwoli to
user
na wykonanie dowolnych programów / poleceń w imieniu użytkownikaotheruser
:Wymagane
user
będzie hasło użytkownika .można tego dokonać bez żądania hasła, dodając
NOPASSWD
dyrektywę: do powyższej linii:user ALL = (otheruser) NOPASSWD: ALL
oryginał - https://ru.stackoverflow.com/questions/473607/%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0 % B8% D0% B5-% D0% BA% D0% BE% D0% BC% D0% B0% D0% BD% D0% B4% D1% 8B-% D0% BE% D1% 82-% D0% B4% D1% 80% D1% 83% D0% B3% D0% BE% D0% B3% D0% BE-% D0% BF% D0% BE% D0% BB% D1% 8C% D0% B7% D0% BE% D0 % B2% D0% B0% D1% 82% D0% B5% D0% BB% D1% 8F
Wiele pomaga dodatkowe flagi
-c
lub-p
źródło