Portál AbcLinuxu, 30. dubna 2025 16:55

Jak spouštět X aplikace pod jiným uživatelem (rootem)

Problém se spuštěním okení aplikace pod jiným uživatelem

Hláška:

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Error: Can't open display: :0.0

Příčina:

Při pokusu o otevření okna pod jiným uživatelem došlo k odmítnutí ze strany X serveru

Řešení:

  1. pomocí xhost:
    Nejrychlejší je v prostředí X serveru kde mají být otevírány okna spouštěné aplikace zcela vypnout ověřování uživatele příkazem
    xhost +
    Bezpečnější je pustit do X vybrané uživatele, stroje a protokoly. Příklad pro lokálního uživatele:
    xhost +local:uzivatel # zpřístupní X server lokálnímu uživateli uzivatel
    xhost +si:hostname:almas # zpřístupní X server stroji, který má hodnotu parametru hostname almas
    Aby nebylo nutné pokaždé definovat tato pravidla znova, lze je zapsat do souboru s příponou .hosts který může být umístěn v
    /etc/X*.hosts
    ~/X*.hosts

     

  2. pomocí modulu pam_xauth.so:
    V souboru /etc/pam.d/su zadat řádek:
    session optional pam_xauth.so
    pak si může uživatel nastavit v souboru ~/.xauth/export i kterým uživatelům se má autentizační cookie exportovat.
  3. pomocí 'magického klíče':
    Import 'magického klíče' pro přístup do X spustit (použitelné pouze pro přístup roota)
    xauth -f ~user/.Xauthority extract - :0 | xauth merge -
    kde user je ten uživatel, který je do grafického prostředí přihlášen.
  4. pomocí ssh:
    #ssh -X root@localhost /cesta/k/aplikaci
    Ovšem realizovat takto spouštění aplikací na lokálním stroji je maximálně zvrhlé
  5. použít sux místo su - sux je wrapper nad programem su, který novému uživateli exportuje stávající nastavení X

Pozor na následující problém! Zadáte-li omylem na řádku xauth -display dojde ke zrušení přístupu pro stroj s doménovým názvem display

 

Problém se spuštěním aplikace v prostředí vzdáleného X serveru

Hláška:

xterm Xt error: Can't open display: brtnik:0.0

Příčina:

Vzdálený X server nenaslouchá na tcp portu... zrejme ma spusteny parameter -nolisten tcp

Řešení:

Zrušit tento parametr v nastavení v souborech /etc/X11/xdm/Xservers a /etc/X11/xinit/xserverrc
Nebo spustit aplikaci přes ssh tunel (viz řešení předchozího problému)

Související dokumenty

Originální příspěvek v diskusi (ostatní)

Dokument vytvořil: Michal Vyskočil, 15.12.2005 15:42 | Poslední úprava: tazatel, 19.1.2009 06:58 | Historie změn | Zobrazeno: 1364×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.