X aplikacije na daljinu mini-KAKO
 Vincent Zweije, [email protected]
 19. studenog 1999.

 Ovaj mini-KAKO opisuje kako pokretati udaljene X aplikacije. To jest,
 kako prikazati X program na drugom ra�unalu, a ne onom na kojem radi.
 Ili obratno: kako natjerati X program da radi na drugom ra�unalu, a ne
 onom pred kojim sjedite. Ovaj mini-KAKO usredoto�en je na sigurnost.
 Tako�er sadr�i informacije o lokalnom pokretanju X aplikacija, ali kao
 drugi korisnik.

 ______________________________________________________________________

 Sadr�aj


 1. Uvod

 2. Povezani dokumenti

 3. Prizor

 4. Malo teorije

 5. Obja�njavanje klijentu

 6. Obja�njavanje serveru

    6.1 xhost
    6.2 xauth
       6.2.1 Pripremanje kola�i�a
       6.2.2 Preno�enje kola�i�a
       6.2.3 Kori�tenje kola�i�a
    6.3 ssh

 7. X aplikacije pod drugom korisni�kom oznakom

    7.1 Razli�iti korisnici na istom ra�unalu
    7.2 Korisnik klijenta je root

 8. Pokretanje window managera na daljinu

 9. Problemi

 10. Hrvatski prijevod

 ______________________________________________________________________



 11..  UUvvoodd

 Ovo je (ili bi trebao biti) vodi� u pokretanju X aplikacija preko
 mre�e.  Usredoto�en je na sigurnost. Napisao sam ga iz nekoliko
 razloga.


 1. Na USENET-u se stalno pojavljuju pitanja o pokretanju udaljenih X
    aplikacija.

 2. Vidim mnogo, mnogo preporuka za kori�tenje xhost +ra�unalo ili �ak
    xhost + kako bi se omogu�ile X veze. NNjjiihhoovvaa ssiigguurrnnoosstt jjee ssmmiijjee��nnaa,
    a ima boljih na�ina.

 3. Ne znam za jednostavan dokument koji opisuje ttee na�ine. Ako vi
    znate, obavijestite me na [email protected].
 Ovaj dokument napisan je za Unix-olike sustave. I ako je va� lokalni
 ili udaljeni operacijski sustav ne�to drugo, ovdje �ete shvatiti kako
 stvari rade. Me�utim, primjere �ete morati prevesti tako da odgovaraju
 va�em operacijskom sustavu.

 Najnovija verzija ovog dokumenta uvijek se mo�e dobiti WWW-om na
 <http://www.xs4all.nl/~zweije/xauth.html>. Tako�er je dostupna kao
 _L_i_n_u_x _R_e_m_o_t_e _X _A_p_p_s _m_i_n_i_-_H_O_W_T_O na
 <http://sunsite.unc.edu/LDP/HOWTO/mini/Remote-X-Apps>. Linux
 (mini-)HOWTO-i dostupni su HTTP-om ili FTP-om sa sunsite.unc.edu.

 Ovo je verzija 0.6.1. Nema jamstava, samo dobre namjere. Rado primam
 prijedloge, ideje, dodatke, korisne pokaziva�e, (pravopisne) ispravke,
 itd.... �elim da ovaj dokument ostane jednostavan i �itljiv, u
 najboljem KAKO stilu. Flejmovi u /dev/null.

 Sadr�aj zadnji put osvje�io Vincent Zweije
 <http://www.xs4all.nl/~zweije/index.html> 19. studenog 1999.


 22..  PPoovveezzaannii ddookkuummeennttii

 Kevin Kenny je napisao srodan dokument, _W_h_a_t _t_o _d_o _w_h_e_n _T_k _s_a_y_s _t_h_a_t
 _y_o_u_r _d_i_s_p_l_a_y _i_s _i_n_s_e_c_u_r_e (�to u�initi kad Tk ka�e da je va� prikaz
 nesiguran).  Nalazi se na  <http://ce-toolkit.crd.ge.com/tkxauth/>.
 Predla�e sli�no rje�enje X autorizaciji (xauth). No Kevin se vi�e
 usmjerio na olak�avanje uporabe xautha preko xdma.

 Tako�er sam obavje�ten da je dobar izvor informacija _T_h_e _X _S_y_s_t_e_m
 _W_i_n_d_o_w _S_y_s_t_e_m _V_o_l_. _8 _X _W_i_n_d_o_w _S_y_s_t_e_m _A_d_m_i_n_i_s_t_r_a_t_o_r_'_s _G_u_i_d_e kojeg je
 izdao O'Reilly and Associates. Na�alost, nisam uspio provjeriti.

 I jo� jedan dokument vrlo sli�an onom kojeg �itate, naslova _S_e_c_u_r_i_n_g _X
 _W_i_n_d_o_w_s, mo�e se na�i na
 <http://ciac.llnl.gov/ciac/documents/ciac2316.html>.

 Tako�er pogledajte usenet grupe kao �to je comp.windows.x,
 comp.os.linux.x i comp.os.linux.networking.


 33..  PPrriizzoorr

 Koristite dva ra�unala. Na prvom gledate i tipkate u X Window System.
 Na drugom obavljate neke va�ne grafi�ke poslove. Ho�ete da drugo
 rezultate poka�e na prvom. X Window System to �ini mogu�im.

 Naravno, prvo vam treba veza izme�u njih. I to �to br�a; X protokol
 u�asno je zahtjevan. Ali, uz malo strpljenja i odgovaraju�e sa�imanje
 prokola, aplikacije mo�ete pokretati i preko modema. Ako vas zanima
 kompresija X protokola, pogledajte dxpc,
 <http://ccwf.cc.utexas.edu/~zvonler/dxpc/> ili LBX,
 <http://www.ultranet.com/~pauld/faqs/LBX-HOWTO.html> (tako�er poznat
 kao _L_B_X _m_i_n_i_-_H_O_W_T_O <http://sunsite.unc.edu/LDP/HOWTO/mini/LBX>).

 Za sve to trebate napraviti dvije stvari:

 1. Re�i lokalnom prikazu (serveru) da prihva�a veze s udaljenog
    ra�unala.

 2. Re�i udaljenoj aplikaciji (klijentu) da se poka�e na va�em prikazu.


 44..  MMaalloo tteeoorriijjee

 �arobna je rije� DISPLAY (prikaz). Na X Window Systemu zaslon se
 (pojednostavljeno) sastoji od tipkovnice, mi�a i zaslona. O prikazu se
 brine program poznat kao X server. Server sposobnost prikaza daje
 drugim programima koji su na njega spojeni.

 Prikaz ima svoje ime, kao �to je:

 �  DISPLAY=svemir.svjet.la:0

 �  DISPLAY=localhost:4

 �  DISPLAY=:0

 Ono se sastoji od imena ra�unala (kao �to je svemir.svjet.la ili
 localhost), dvoto�ke (:) i nastavka (kao �to je 0 ili 4). Ime ra�unala
 ozna�ava ra�unalo na kojem X server radi. Ako nije navedeno, misli se
 na lokalni stroj. Nastavak je obi�no 0 --- on se mijenja ako je na
 jednom ra�unalu vi�e prikaza.

 Ako ikad naletite na ime prikaza koje zavr�ava na .b, to je broj
 zaslona. Prikaz zapravo mo�e imati i vi�e zaslona. No obi�no postoji
 samo jedan, s brojem 0.

 Ima i drugih oblika DISPLAY-a, ali ovo je dovoljno za na�e potrebe.

 Za tehni�ki radoznale:


 �  imera�unala:P.Z zna�i zaslon Z na prikazu P ra�unala imera�unala; X
    server za taj prikaz slu�a na TCP portu 6000+P.

 �  ra�unalo/unix:P.Z zna�i zaslon Z na prikazu P ra�unala ra�unalo; X
    server za taj prikaz slu�a na UNIX domain socketu /tmp/.X11-unix/XP
    (pa je dostupan samo s ra�unala ra�unalo).

 �  :P.Z je isto �to i ra�unalo/unix:P.Z, gdje je ra�unalo ime lokalnog
    ra�unala.


 55..  OObbjjaa��nnjjaavvaannjjee kklliijjeennttuu

 Program klijent (va�a grafi�ka aplikacija, na primjer) saznaje na koji
 �e se prikaz spojiti preko DISPLAY varijable okru�ja. Nju mo�ete
 nadja�ati davanjem argumenta -display ra�unalo:0 pri pokretanju
 programa. Malo primjera razjasnit �e stvari.

 Jedno ra�unalo poznato je kao svemir, a mi smo u domeni svjet.la.  Ako
 radimo na normalnom X serveru, prikaz se zove svemir.svjet.la:0.
 �elimo pokrenuti xfig, program za crtanje, na udaljenom ra�unalu, koje
 se zove crna.ru.pa, i prikazati ga ovdje, na svemir-u.

 Ako na udaljenom ra�unalu radite u cshu:


 crna% setenv DISPLAY svemir.svjet.la:0
 crna% xfig &


 Ili:


 crna% xfig -display svemir.svjet.la:0 &



 Ako na udaljenom ra�unalu radite u shu:


 crna$ DISPLAY=svemir.svjet.la:0
 crna$ export DISPLAY
 crna$ xfig &


 Ili:


 dark$ DISPLAY=svemir.svjet.la:0 xfig &


 Ili, naravno:


 dark$ xfig -display svemir.svjet.la:0 &



 Izgleda da neke verzije telneta varijablu DISPLAY automatski prenose
 na udaljeno ra�unalo. Ako imate jedan od njih, imate sre�e i ne morate
 ni�ta raditi. Ako nemate, ve�ina verzija telneta prenose TERM
 varijablu okru�ja; uz malo petljanja mogu�e je priljepiti DISPLAY na
 varijablu TERM.

 Zamisao priljepljivanja je da pomo�u neke skripte postignete
 slijede�e: prije telneta verijabli TERM dodajte vrijednost varijable
 DISPLAY. Zatim pokrenite telnet. Na drugom kraju veze, u odgovaraju�oj
 .*shrc datoteci pro�itajte vrijednost DISPLAY iz TERM.


 66..  OObbjjaa��nnjjaavvaannjjee sseerrvveerruu

 Server ne prihva�a veze od bilo kamo. Ne �elite da svi prikazuju
 prozore na va�em zaslonu. Ili �itaju ono �to tipkate --- nemojte
 zaboraviti da je tipkovnica dio prikaza!

 �ini se da premalo ljudi shva�a da je dopu�tanje pristupa prikazu
 sigurnosni rizik. Netko tko mo�e pristupiti va�em prikazu mo�e �itati
 i mijenjati va�e ekrane, �itati va�e tipke i pratiti kretanje mi�a.

 Ve�ina servera poznaje dva na�ina autorizacije veza: mehanizam popisa
 ra�unala (xhost) i mehanizam �arobnih rije�i (xauth). Tu je i ssh,
 sigurna ljuska, koji mo�e prenositi X veze.


 66..11..  xxhhoosstt

 xhost dopu�ta pristup na osnovu imena ra�unala. Server ima popis
 ra�unala koja se na njega smiju spojiti. Provjeru ra�unala mo�e i
 potpuno isklju�iti. Pa�nja: to zna�i da provjera nema, pa se mo�e
 spojiti bbiilloo kkoojjee ra�unalo!

 Serverov popis ra�unala kontrolirate programom xhost. U prethodnom
 primjeru u�inite ovo:


 svemir$ xhost +crna.ru.pa



 Ovo dopu�ta sve veze s ra�unala crna.ru.pa. �im se va� X klijent spoji
 i prika�e prozor, radi sigurnosti onemogu�ite daljnja povezivanja
 pomo�u:


 svemir$ xhost -crna.ru.pa
 Provjeru ra�unala mo�ete ugasiti s:


 svemir$ xhost +



 Tako se isklju�uje provjera pristupa �to omogu�uje ssvviimmaa da se spoje.
 Ovo nniikkaadd nemojte napraviti na mre�i na kojoj ne vjerujete ssvviimm
 korisnicima (kao �to je Internet). Ponovo uklju�ite provjeru ra�unala
 pomo�u:


 svemir$ xhost -



 xhost - sam po sebi nnee��ee izbrisati sva ra�unala iz popisa pristupa (to
 bi bilo prili�no beskorisno --- ne biste se mogli spojiti od bilo
 gdje, �ak ni sa svog lokalnog ra�unala).

 xxhhoosstt jjee vvrrlloo nneessiigguurraann mmeehhaanniizzaamm.. Ne razlikuje pojedine korisnike na
 udaljenom ra�unalu. Tako�er, imena ra�unala (zapravo adrese) mogu se
 krivotvoriti. To je lo�e ako ste na neprovjerenoj mre�i (na primjer
 ve� i PPP pristupom na Internet).


 66..22..  xxaauutthh

 xauth omogu�ava pristup svakome tko zna pravu tajnu. Takva tajna zove
 se autorizacijski zapis, odnosno �arobni kola�i�. Taj na�in
 autorizacije formalno se zove MIT-MAGIC-COOKIE-1.

 Kola�i�i za razne prikaze spremljeni su zajedno u  /.Xauthority/.
 Kola�i�ima se bavi program xauth, odakle dolazi i nadimak ove sheme.
 Va�em  /.Xauthority ne smiju mo�i pristupiti drugi korisnici.

 Na po�etku rada server �e pro�itati kola�i� iz datoteke navedene uz
 argument -auth. Nakon toga, server dopu�ta veze samo onim klijentima
 koji znaju isti kola�i�. Kada se kola�i� u  /.Xauthority promijeni,
 sseerrvveerr nnee��ee pprriihhvvaattiittii pprroommjjeennuu.

 Noviji serveri kola�i�e mogu generirati u hodu za klijente koji to
 zatra�e.  No kola�i�i su jo� uvijek pohranjeni u serveru; ne
 zavr�avaju u  /.Xauthority, osim ako ih klijent tamo stavi. Prema
 Davidu Wigginsu:

      U X11R6.3 dodana je jo� jedna mogu�nost koja bi vas mogla
      zanimati. Preko novog pro�irenja SECURITY sam X server mo�e
      generirati i vra�ati kola�i�e u hodu. Tako�er, kola�i�i se
      mogu odrediti ``nepovjerljivima'' tako da su aplikacije koje
      se spajaju s takvim kola�i�ima ograni�ene u svom djelovanju.
      Na primjer, ne�e mo�i krasti ulaz s tipkovnice/mi�a ili
      sadr�aj prozora od drugih, povjerljivih klijenata. xauthu je
      dodana nova podnaredba generate kako bi ta mogu�nost bila
      barem iskoristiva, ako ne jednostavna.


 xauth ima jasnu sigurnosnu prednost nad xhostom. Mo�ete ograni�iti
 pristup na odre�ene korisnike na odre�enim ra�unalima. Nije ranjiv na
 krivotvorene adrese kao xhost. A ako �elite, mo�ete ga koristiti
 zajedno s xhostom za dopu�tanje veza.




 66..22..11..  PPrriipprreemmaannjjee kkoollaa��ii��aa

 Ako �elite koristiti xauth, X server morate pokrenuti s argumentom
 -auth datoteka. Ako X server pokre�ete skriptom startx, tamo je pravo
 mjesto za to. Ovako pripremite svoj autorizacijski zapis u svojoj
 startx skripti.

 Izvadak iz /usr/X11R6/bin/startx:

 mcookie|sed -e 's/^/add :0 . /'|xauth -q
 xinit -- -auth "$HOME/.Xauthority"



 mcookie je program�i� iz paketa util-linux koji se distribuira s
 <ftp://ftp.math.uio.no/pub/linux/>. Mo�ete koristiti i md5sum za
 pretvaranje nekih slu�ajnih podataka (na primjer, iz /dev/urandom ili
 ps -axl) u format kola�i�a:

 dd if=/dev/urandom count=1|md5sum|sed -e 's/^/add :0 . /'|xauth -q
 xinit -- -auth "$HOME/.Xauthority"



 Ako ne mo�ete promijeniti startx skriptu (jer niste root), neka to
 u�ini va� administrator, ili neka postavi xdm. Ako ne�e ili ne �eli,
 mo�ete napraviti  /.xserverrc skriptu. Ako ona postoji, umjesto pravog
 X servera pokre�e ju xinit. Tako iz te skripte mo�ete pokretati pravi
 X server s potrebnim argumentima. Da bi to radilo, stavite gornji
 primjer u svoj  /.xserverrc za stvaranje kola�i�a, a zatim izvr�ite
 pravi X server:

 #!/bin/sh
 mcookie|sed -e 's/^/add :0 . /'|xauth -q
 exec /usr/X11R6/bin/X "$@" -auth "$HOME/.Xauthority"



 Ako za rad sa X-om koristite xdm, xauth mo�ete lako koristiti.
 Definirajte DisplayManager.authDir u /etc/X11/xdm/xdm-config.  xdm �e
 argument -auth prenijeti X serveru kada ga bude pokretao.  Kada se
 logirate preko xdma, on za vas kola�i� stavlja u va�  /.Xauthority. Za
 vi�e informacija pogledajte man stranicu _x_d_m(1). Na primjer, moj
 /etc/X11/xdm/xdm-config sadr�i ovaj red:

 DisplayManager.authDir: /var/lib/xdm




 66..22..22..  PPrreennoo��eennjjee kkoollaa��ii��aa

 Sad, kad ste po�eli rad u X-u na poslu�itelju svemir.svjet.la i svoj
 kola�i� imate u  /.Xauthority, trebate prenijeti kola�i� klijentu
 crna.ru.pa.

 To je najjednostavnije ako se va� home direktorij dijeli izme�u crna i
 svemir.  /.Xauthority datoteke su jednake, pa se kola�i� prenosi
 automatski. Me�utim, tu je zamka: kada u  /.Xauthority stavite kola�i�
 za :0, crna �e misliti da je to kola�i� za njega, a ne za svemir. Kod
 stvaranja kola�i�a morate koristiti eksplicitno ime ra�unala; ne
 mo�ete ga izostaviti. Isti kola�i� za :0 i svemir:0 mo�ete instalirati
 pomo�u:


 #!/bin/sh
 cookie=`mcookie`
 xauth add :0 . $cookie
 xauth add "$HOST:0" . $cookie
 exec /usr/X11R6/bin/X "$@" -auth "$HOME/.Xauthority"



 Ako se home direktoriji ne dijele, kola�i� mo�ete prenijeti pomo�u
 rsha, udaljene ljuske:

 svemir$ xauth nlist "${HOST}:0" | rsh crna.ru.pa xauth nmerge -



 �to �e re�i:

 1. Izvuci kola�i� iz lokalnog  /.Xauthority (xauth nlist :0).

 2. Prenesi ga na crna.ru.pa (| rsh crna.ru.pa).

 3. Stavi ga u tamo�nji ~/.Xauthority (xauth nmerge -).

 Primijetite kako se koristi ${HOST}. Morate prenijeti kola�i� izri�ito
 povezan s lokalnim ra�unalom. Udaljena X aplikacija bi mislila da se
 ime prikaza :0 odnosi na udaljeno ra�unalo, a to nije ono �to �elite!

 Mogu�e je da rsh ne�e raditi. Osim toga, rsh ima i sigurnosnih mana
 (opet la�na imena ra�unala, ako se dobro sje�am). Ako ne mo�ete ili ne
 �elite koristiti rsh, kola�i� mo�ete prenijeti i ru�no, na primjer
 ovako:

 svemir$ echo $DISPLAY
 :0
 svemir$ xauth list $DISPLAY
 svemir/unix:0 MIT-MAGIC-COOKIE-1 076aaecfd370fd2af6bb9f5550b26926
 svemir$ rlogin crna.ru.pa
 Password:
 crna% setenv DISPLAY svemir.svjet.la:0
 crna% xauth add $DISPLAY . 076aaecfd370fd2af6bb9f5550b26926
 crna% xfig &
 [15332]
 crna% logout
 svemir$



 Za vi�e informacija tako�er pogledajte man stranice za _r_s_h(1) i
 _x_a_u_t_h(1x).

 Prijedlog: mo�da bi bilo mogu�e priljepiti kola�i� TERM ili DISPLAY
 varijabli prilikom telneta na udaljeno ra�unalo. To bi i�lo na isti
 na�in kao i priljepljivanje DISPLAY varijable na TERM varijablu.
 Pogledajte poglavlje ``Obja�njavanje klijentu''. Tu �ete se morati
 sami sna�i, ali me zanima mo�e li netko ovo potvrditi ili pore�i.


 66..22..33..  KKoorrii��tteennjjee kkoollaa��ii��aa

 X aplikacija na crna.ru.pa, u primjeru xfig, automatski �e u
  /.Xauthority potra�iti kola�i� i njime se autentificirati.

 Postoji mala komplikacija kod kori�tenja localhost:P. X klijent
 aplikacije mogu kod tra�enja kola�i�a prevesti localhost:P u
 ra�unalo/unix:P. Konkretno, to zna�i da kola�i� za localhost:P u va�em
  /.Xauthority nema nniikkaakkvvoogg u�inka.

 66..33..  sssshh

 Zapisi o autoritetu prenose se bez enkripcije. Ako ste zabrinuti da bi
 netko mogao prislu�kivati va�e veze, koristite ssh, sigurnu ljusku.
 Proslije�ivat �e X preko enkriptiranih veza. Osim toga, odli�na je i
 za druge stvari.  Dobra je strukturalna nadogradnja va�eg sustava.
 Samo posjetite <http://www.cs.hut.fi/ssh/>, ssh-ovu WWW stranicu.

 Tko jo� zna ne�to o autorizacijskim metodama ili enkriptiranju X veza?
 Mo�da Kerberos?


 77..  XX aapplliikkaacciijjee ppoodd ddrruuggoomm kkoorriissnnii��kkoomm oozznnaakkoomm

 Recimo da �elite pokrenuti grafi�ki konfiguracijski alat koji
 zahtijeva root privilegije. Me�utim, va�a X sesija radi pod va�im
 obi�nim ra�unom. Mo�da �e vam se isprva �initi �udno, ali X server
 nnee��ee alatu dozvoliti da pristupa va�em prikazu. Kako je to mogu�e kada
 root obi�no mo�e u�initi sve?  I kako mo�ete zaobi�i ovaj problem?

 Poop�imo situaciju: �elite pokrenuti X aplikaciju pod korisni�kom
 oznakom korisnikklijenta, a X sesiju je pokrenuo korisnikservera. Ako
 ste pro�itali poglavlje o kola�i�ima, jasno vam je za�to
 korisnikklijenta ne mo�e pristupiti va�em prikazu:
  korisnikklijenta/.Xauthority ne sadr�i pravi �arobni kola�i� za
 pristupanje prikazu. Pravi kola�i� se nalazi u
  korisnikservera/.Xauthority.


 77..11..  RRaazzllii��iittii kkoorriissnniiccii nnaa iissttoomm rraa��uunnaalluu

 Naravno, sve �to radi za X na daljinu tako�er radi i za razli�ite
 korisnike (pogotovo slogin localhost -l korisnikklijenta). Jedina je
 razlika u tome �to su ra�unalo klijenta i ra�unalo servera jedno te
 isto. I budu�i da se radi o istom ra�unalu, postoje neke pre�ice u
 preno�enju �arobnog kola�i�a.

 Pretpostavit �emo da za prebacivanje izme�u korisnika koristite su. U
 biti, ono �to morate u�initi je napisati skriptu koja �e zvati su,
 okru�uju�i naredbu koju su izvr�ava s kodom koji obavlja stvari
 potrebne za X na daljinu. Te potrebne stvari su postavljanje varijable
 DISPLAY i preno�enje �arobnog kola�i�a.

 Postavljanje varijable DISPLAY je relativno jednostavno; dovoljno je
 navesti DISPLAY="$DISPLAY" prije pokretanja naredbe. Dakle, mogli
 biste jednostavno u�initi ovo:

 su - korisnikklijenta -c "env DISPLAY=$DISPLAY programklijent &"



 To jo� uvijek ne radi jer nismo prenijeli i kola�i�. Kola�i� mo�emo
 saznati pomo�u xauth list "$DISPLAY". Ta naredba kola�i� ispisuje u
 formatu koji xauth prihva�a kao argument; to�no ono �to nam treba!
 Tako �emo dobiveni kola�i� zadati naredbi xauth unutar su naredbe,
 tamo postaviti DISPLAY i pokrenuti naredbu koja nam je potrebna.

 su - korisnikklijenta -c "xauth add `xauth list $DISPLAY`; \
                           exec env DISPLAY=$DISPLAY programklijent"



 Oko ovoga mo�ete napisati skriptu koja �e korisnikklijenta i
 programklijent prihva�ati kao parametre. Kad smo ve� kod toga, skriptu
 �emo malo pobolj�ati, �ine�i je manje �itljivom, ali robusnijom. Ona
 izgleda ovako:
 #!/bin/sh
 if [ $# -lt 2 ]
 then echo "Kori�tenje: `basename $0` korisnikklijenta naredba" >&2
      exit 2
 fi
 KORISNIKKLIJENTA="$1"; shift
 exec su - "$KORISNIKKLIJENTA" \
         -c "xauth add `xauth list \"$DISPLAY\"`; \
             exec env DISPLAY='$DISPLAY' "'"$SHELL"'" -c '$*'"



 Mislim da je to portabilno i da radi dobro u ve�ini slu�ajeva. Jedini
 nedostatak kojeg se sada mogu sjetiti je da �e zbog kori�tenja '$*'
 jednostruki navodnici u argumentu naredba zeznuti navo�enje u
 argumentima naredbe. Ako je ne�to ozbiljno krivo, javite mi.

 Tu skriptu nazovite /usr/local/bin/xsu, pa mo�ete raditi ovo:

 xsu korisnikklijenta 'naredba &'



 Lako, zar ne?


 77..22..  KKoorriissnniikk kklliijjeennttaa jjee rroooott

 O�ito, sve �to radi za ne-root korisnike radit �e i za roota. Me�utim,
 za roota su stvari jo� jednostavnije jer root mo�e �itati bilo �iji
  /.Xauthority. Nema potrebe za preno�enjem kola�i�a. Sve �to trebate
 je postaviti DISPLAY, te postaviti XAUTHORITY na
  korisnikservera/.Xauthority. Dakle:

 su - -c "exec env DISPLAY='$DISPLAY' \
                   XAUTHORITY='${XAUTHORITY-$HOME/.Xauthority}' \
                   naredba"



 Skripta koja to radi izgledala bi otprilike ovako:


 #!/bin/sh
 if [ $# -lt 1 ]
 then echo "Kori�tenje: `basename $0` naredba" >&2
      exit 2
 fi
 su - -c "exec env DISPLAY='$DISPLAY' \
                   XAUTHORITY='${XAUTHORITY-$HOME/.Xauthority}' \
                   "'"$SHELL"'" -c '$*'"



 Tu skriptu nazovite /usr/local/bin/xroot, pa mo�ete raditi ovo:

 xroot 'control-panel &'



 Jo� lak�e, zar ne?





 88..  PPookkrreettaannjjee wwiinnddooww mmaannaaggeerraa nnaa ddaalljjiinnuu

 Window manager (kao �to je twm, wmaker, ili fvwm95) je aplikacija ba�
 kao i svaka druga. Trebao bi raditi uobi�ajeni postupak.

 Pa, skoro. U bilo koje vrijeme na jednom prikazu mo�e raditi najvi�e
 jedan window manager. Ako ve� radite u lokalnom window manageru, ne
 mo�ete pokrenuti udaljeni (po�alit �e se i zavr�iti). Najprije morate
 ubiti (ili jednostavno ugasiti) lokalni window manager.

 Na�alost, mnoge skripte za X sesiju zavr�avaju s

 exec izabrani-window-manager


 �to zna�i da va�a sesija zavr�ava �im (lokalni) window manager zavr�i,
 nakon �ega ju X sustav smatra gotovom i odlogira vas.

 Morate prije�i nekoliko dodatnih zapreka, ali to nije nemogu�e i nije
 prete�ko. Jednostavno se igrajte svojom skriptom sesije (obi�no
  /.xsession ili  /.xinitrc) kako biste ju natjerali da radi ono �to
 �elite.

 Budite svjesni da window manager �esto nudi na�ine pokretanja novih
 programa i da �e oni biti pokrenuti na lokalnom stroju. To jest, na
 onom stroju na kojem radi window manager. Ako radite na udaljenom
 window manageru, pokretat �e udaljene aplikacije, a to mo�da nije ono
 �to �elite. Naravno, one �e se i dalje prikazivati na va�em lokalnom
 prikazu.


 99..  PPrroobblleemmii

 Kada prvi put pokrenete udaljenu X aplikaciju, obi�no ne radi. Evo
 nekoliko �estih gre�aka, njihovih vjerojatnih uzroka, te rje�enja koja
 bi vam mogla pomo�i.


 xterm Xt error: Can't open display:



 U okru�ju nema DISPLAY varijable, a niste ga naveli aplikaciji ni
 preko argumenta -display. Aplikacija pretpostavlja prazan niz, ali to
 je sintakti�ki nepravilno. Da bi ovo rje�ili, provjerite da je
 varijabla DISPLAY to�no postavljena (pomo�u setenv ili export, ovisno
 o va�oj ljusci).


 _X11TransSocketINETConnect: Can't connect: errno = 101
 xterm Xt error: Can't open display: crna.ru.pa:0



 Broj gre�ke 101 zna�i ``Mre�a je nedostupna''. Aplikacija nije mogla
 uspostaviti mre�nu vezu sa serverom. Provjerite da li je DISPLAY to�an
 i da se do ra�unala servera mo�e do�i s klijenta (trebalo bi se mo�i,
 ipak ste vjerojatno logirani na server i telnetom pristupate
 klijentu).


 _X11TransSocketINETConnect: Can't connect: errno = 111
 xterm Xt error: Can't open display: crna.ru.pa:0



 Broj gre�ke 111 zna�i ``Veza odbijena''. Spajanje na ra�unalo server
 je uspjelo, ali tamo navedeni server ne postoji. Provjerite da li
 koristite pravo ime i broj prikaza.


 Xlib: connection to ":0.0" refused by server
 Xlib: Client is not authorized to connect to Server
 xterm Xt error: Can't open display: crna.ru.pa:0.0



 Klijent se povezao sa serverom, ali server mu ne dopu�ta kori�tenje
 (nije autoriziran). Provjerite da li ste klijentu prenijeli pravi
 �arobni kola�i� i da on nije istekao (server uzima novi kola�i� kod
 svakog pokretanja).


 1100..  HHrrvvaattsskkii pprriijjeevvoodd

 Najnovija verzija ovog prijevoda mo�e se na�i na
 <http://dokumentacija.linux.hr/X-na-daljinu.html>.  Odr�ava ga Matej
 Vela, [email protected].  Svi su prilozi, primjedbe i prijedlozi
 dobrodo�li.