[MEGOLDVA] DISPLAY változó

 ( mogorva | 2017. március 20., hétfő - 13:02 )

Hi,

-------------------------------- Röviden a kérdés:
Mi és hogyan kellene, hogy beállítsa a DISPLAY változót Gnome alatt?

-------------------------------- Hosszan a kérdés:
* SLES 11
* xrdp-n (+gnome) belépő userek
* Van egy program, amit root nevében kellene futtatni (mindegy, miért), opcionálisan desktopra rakott launcher-rel

probléma #1: sudoers ellenére gnomesu mindenáron root jelszót kér, amit a júzerek nem ismer(het)nek
probléma #1 megoldva rettenetes workaround-dal gugli alapján (/usr/bin/gnomesu lecserélése scriptre, ami az átnevezett eredeti gnomesu-t futtatja sudo-val) + sudoers módosítása

probléma #2: DISPLAY változó

Kész a launcher (gnomesu /path/to/app), de nem indítja az appot ("nem történik semmi").

Az a sanda gyanúm, hogy a DISPLAY változó a baja, mert ha terminálból indítom a "gnomesu /path/to/app" -ot, akkor "Cannot open display: "-t kapok.
Az "echo $DISPLAY" outptuja egy üres sor.

És itt jön akkor a kérdés: mi és hogyan állítja a DISPLAY változót?

Tudom, béna kérdés, de ezek az X-es dolgok nekem mindig nagyon misztikusak voltak. :)

Köszi!

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Tipp: Tolj egy :0 -t a display változóba.

FathoM

Sajnos ez nem ilyen egyszerű, ezeken elvileg túlvagyok.

Gnome Terminal:

:~> export DISPLAY=:0
:~> gnomesu xeyes
Cannot open display:
:~> 

Szerintem a /root alatt a .bashrc, .bash_profile és .profile file-ok lehetnek érdekesek. Úgy értem, ezek valamelyikében kellene egy

export DISPLAY=:0

Amúgy Fedora 25-ön nekem a

beesu xeyes

a root jelszó megadása után egyből működik.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Köszi a tippet, de a bash-os próbálkozás sem segített.

Tipp nincs joga a rootnak csatlakoztni az non-root Xserverre? (de nem is tudom mikor láttam utoljára X-et :))

Idézet:
These methods will allow root to connect to a non-root user's X server, but present varying levels of security risks, especially if you run ssh. If you are behind a firewall, you may consider them to be safe enough for your requirements.
Temporarily allow root access
xhost
$ xhost +
will temporarily allow root, or anyone to connect your X server. Likewise,

Forrás

Azt hiszem, sikerült megoldani.

A teljes gugli arról szól, hogy exportáljak DISPLAY változót és akkor nekem jó lesz.
Arról sehol nincs szó, hogy mire kell beállítani, mert a mindenki által hajtogatott :0.0 rajtam nem segített.

Végül találtam egy doksit a DISPLAY-ről, ami alapján rájöttem, hogy meg kell keresnem azt a 6000 feletti nyitott tcp portot, ami az enyém (pl. 6099).
Ebből már lehet tudni, hogy "99" az én DISPLAY-em.
És akkor:

gnomesu DISPLAY=:99 xhost +; /path/to/app

és rohadjonmeg.

-------------------------

Az én esetemben (RDP-vel jövök) van rövidebb módszer is a DISPLAY kitalálására:

ps -ef | egrep -v "grep" | egrep "$(whoami).*X11rdp" | awk '{print $9}'