Giri�
Bu makalenin konusu X Display Manager
'i kurulmasi ve kullanilmasidir. X Display Manager ana bir makinada �alisarak
parelel X g�r�nt�lerini basit olaylari denetleyerek y�netir.Bu
i�lemi kulanici i�lemlerini init(8), getty(1)
ve login(1) harf terminalerine bagliyarak yapar.Ayrica xdm, X server
�ali�madigi zaman g�r�nt� temizleme konusunda
yardimcidir. xdm'nin en yararli �zeliklerinden biri de g�r�nt�
sunucu (server) ya olan kontrollerin izinlerini kullanicilarin izinleri
ile ili�kili olarak ayarlamasidir.xdm bu yeteneginden dolayi
X oturumlarinin giri� iznini standart olarak ayarlar.Bu sebeble bir
makine birden fazla kulanici tarafindan kulaniliyorsa X oturumlarini ayarlanmasi
i�in uygundur.
Konu ��eri�i
Bu s�tun xdm altindaki adresleme
izni ile ili�kili.X sunucudaki program g�venligi gelecek ay
ayrintili olarak ayri bir s�tunda ele alinacaktir.Tek kullanicili
bir masaust� bilgisayarda �alisan xdm ile ilgileniyorsaniz
XDMCP 'yi atlayabilirsiniz.Eger XDMCP ile ilgilenmiyorsaniz bu konu anlatim
sirasina uymadan diger bolumlere ge�ebilirsiniz ��nk�
b�ndan sonraki b�l�mler a� �zelikleri ve X terminaliyle
olan etkile�imi anlatmaktadir.Eger X terminalinin �zeliklerinin
ayarlanmasi ile ilgileniyorsaniz size O' Reilly & Associates " The
X Window System Administrators Guide" kitabini �nerebilirim.Bu kitapta
bu makaledekinden �ok daha fazla ve ayrintili bilgi bulunmaktadir.
X Terminalinde ��lem
Y�r�t�lmesi ve Denetlenmesi
Bir kullanicinin bilgisayari genelde
tty aray�z�n� (shell) kullanir .xdm i kullanirken kullanici
i�lemlerini denetleyen sisteme "arbitrary session manager" (istege
g�re i�lem y�neticisi) denir.Bu sistem tty aray�zlerinden
farklidir.Nedeni ise X terminallerini kullanirken kulanilan aray�z�n�n
yapilan i�lemlerle bir alakasi kalmami� olup artik X terminalini
denetlemek gerekmemektedir ;bu i�i de arbitrary session manager yapmaktadir.
xdm 'nin Genel Yapisi
xdm; bir Xclient y�neticisi olarak
alinabilir , g�revi kullan�c�n�n ba�lantilarini
ve �ali�tirdigi programlari ba�tan sona denetlemektedir.
xdm'nin bir diger i�i de hangi
X sunucu (server) larin �ali�ir,baglanti kurulabilir durumada
oldugunu kaydetmektir.Bu i�i diger XDMCP sunucularinin (XDMCP
requesting management) portlarini dinleyerek ve X sunucusunun dosyalarini
g�zden ge�irerek yapar.xdm bir X sunucusunu y�netmeye
ba�ladigi zaman (X sunucusu �ali�tigi zaman) xdm sunucusuna
bir mesaj bildirir ve kulanicinin adini �ifresini ve kulandigi makina
adini ( g�venlik gerekcesiyle) g�nderir.Ardindan
kulanicinin daha �nceden kendi istegi dogrultusunda yapmis oldugu
ayarlar kulandigi makineye aktarilir ve o makine X sunucusunu g�nderilen(kulanicinin
daha �nceden yapmi� oldugu ayarlari) dikkate alarak �ali�ir.X
sunucu kapandigi zaman benzer bir bi�imde xdm sunucusuna programin
kapandigini bildirir ve program birdaha ki kulanima hazir bir �ekilde
kapanir.
Neden
xdm ?
Daha �nce g�venlik ileti�im
prensipleri ve X sunucularinin ali�ilmi� �zellikleri xdm
de bulunmakla birlikte �zerinde uzun s�re d���n�lm��
ve yogun emek harcanarak yapilmi� yeni �zelikleride barindirmaktadir.Xdm
sistem yoneticilerinin sistem elemanlarini �ok geni� bir �ekilde
ayarlamasini sa�lar.X sunucunun kapatilmadigi �ok kullanicili
(her kullanici degistiginde X sunucu kapatilmadan kullanici adi ve �ifresini
X sunucu kapanmadan girilen sistemlerde) sistemlerde xdm en iyi �ozum
yoludur.Her yeni kulanici degi�diginde masa �st� ayarlari
kulanicinin daha �nce istegine g�re ayarlanmi� �ekli
ile yeniden ba�lar.
Ayarlar
Xdm ayarlarini standart ASCII metin dosyalarinda
tutar.Xdm ayarlari i�in gerekli genel dosyalar /usr/lib/X11/xdm
veya /etc/xdm altinda yeralirken kullanici ayarlari i�in
gerekli �zel dosyalar kulanicinin home dizini altindas tutulur.Herhangi
bir ayar dosyasi yada dosyalari yerdegi�tirdiginde sisteme -config
paremetresi ile kolayca yeni yeri tanimlanabilir.A�agida herbir dosya
ve komut i�in tanimlama ve �rnekleri verilmi�tir.
Genel Dosyalar
xdm-config
Bu dosyada diger t�m ayar dosyalarinin
yerleri belirtilmektedir.Eger dosyalar ba�langictaki tanimlanan yerlerinde
bulunmaktaysa dosya a�agidaki �ekilde olur.Örnegimizde
/etc/X11/xdm altindaki t�m ek dosyalarin tanimlamasi a�agidadir.B�ylece
X sunucu daki kulanici cikarken /usr/lib/X11/xdm altindaki tanimli dosyalar
degi�meden korunmu� olur.
-
DisplayManager.errorLogFile: /var/log/xdm-error.log
-
DisplayManager.pidFile: /var/run/xdm.pid
-
DisplayManager.keyFile: /etc/X11/xdm/xdm-keys
-
DisplayManager.servers: /etc/X11/xdm/Xservers
-
DisplayManager.accessFile: /etc/X11/xdm/Xaccess
-
DisplayManager._0.authorize: true
-
DisplayManager._1.authorize: true
-
DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0
-
DisplayManager._0.startup: /etc/X11/xdm/GiveConsole
-
DisplayManager._0.reset: /etc/X11/xdm/TakeConsole
-
DisplayManager*resources: /etc/X11/xdm/Xresources
-
DisplayManager*session: /etc/X11/xdm/Xsession
-
DisplayManager*authComplain: false
Xservers
A�agida listesi verilen sunuculara
xdm tarafindan y�netilebilir.Bu dosyada en azindan yerel g�runtu
sunucu bulunmalidir.Bu dosyanin sistem �alisirken birdaha okunmasi
sadece SIGHUP sinyalinin alinmasina baglidir.
# ps -a | grep xdm
2639 ? R 0:09 /usr/bin/X11/xdm
# kill -9 2639
Bu �rnek tek ba�ina �ali�an
bir makine i�indir.
-
# first line should be the local display
-
:0 local /usr/X11R6/bin/X
-
# :0 specifies console
-
# local denotes the X server is running
on the locally
-
# /usr/X11R6/bin/X executable run at startup
-
# the syntax for X terminals is slightly
different
-
# since they run their X server from another
machine
-
# ONLY enter X terminals if they DO NOT
support XDMCP
-
eng1:0 foreign NCD xterminal
-
# eng1 is the name of the terminal
-
# :0 is the display to use on the terminal
-
# foreign signifies the X server is running
on a different machine
-
# NCD xterminal are display class resources
specific to this terminal
-
# and aren't absolutely neccesary
-
eng2:0 foreign NCD xterminal
-
eng3:0 foreign Visual xterminal
Xsession
Her bir X oturumu a�ildigi zaman
a�agidaki kod par�asi (script)�alistirilir.
-
#!/bin/sh
-
# following section enables failsafe logon
when neccesary
-
# using <CTRL><RETURN> after password
activates failsafe mode
-
case $# in
-
1)
-
case $1 in
-
failsafe)
-
exec xterm -geometry 80x24-0-0
-
;;
-
esac
-
esac
-
# redirect errors to a file in user's
home directory
-
for errfile in "$HOME/.xsession-errors"
"${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
-
do
-
if ( cp /dev/null "$errfile" 2> /dev/null
)
-
then
-
chmod 600 "$errfile"
-
exec > "$errfile" 2>&1
-
break
-
fi
-
done
-
# use users local .xsession and .Xresources
files if they exist
-
startup=$HOME/.xsession
-
resources=$HOME/.Xresources
-
if [ -x "$startup" ]; then
-
exec "$startup"
-
elif [ -x "$HOME/.Xclients" ]; then
-
exec "$HOME/.Xclients"
-
elif [ -x /etc/X11/xinit/Xclients ]; then
-
exec /etc/X11/xinit/Xclients
-
else
-
if [ -f "$resources" ]; then
-
xrdb -load "$resources"
-
fi
-
exec xsm
-
fi
Xresources
Xdm i�in gerekli kaynaklari
y�kleyen dosyanin bir �rnegi a�agidadir.
-
# key settings to be used by Xlogin widget
-
xlogin*login.translations: #override\
-
# Ctrl R stops xdm from managing display
-
Ctrl<Key>R: abort-display()\n\
-
# F1 or Ctrl Return run a failsafe session
-
# consisting of a single xterm window
-
<Key>F1: set-session-argument(failsafe)
finish-field()\n\
-
Ctrl<Key>Return: set-session-argument(failsafe)
finish-field()\n\
-
<Key>Return: set-session-argument()
finish-field()
-
# display setings for Xlogin widget to
be displayed by xdm
-
xlogin*borderWidth: 3
-
xlogin*greeting: CLIENTHOST
-
xlogin*namePrompt: login:\040
-
xlogin*fail: Sorry Try Again
-
#ifdef COLOR
-
xlogin*greetColor: CadetBlue
-
xlogin*failColor: red
-
*Foreground: black
-
*Background: #fffff0
-
#else
-
xlogin*Foreground: black
-
xlogin*Background: white
-
#endif
-
# settings for xconsole client which is
used when xdm connection on
-
# local server is initialized. This keeps
console messages sent between
-
# logins from going everywhere across
the screen
-
XConsole.text.geometry: 480x130
-
XConsole.verbose: true
-
XConsole*iconic: true
-
XConsole*font: fixed
-
Chooser*geometry: 700x500+300+200
-
Chooser*allowShellResize: false
-
Chooser*viewport.forceBars: true
-
Chooser*label.font: *-new century schoolbook-bold-i-normal-*-240-*
-
Chooser*label.label: XDMCP Host Menu from
CLIENTHOST
-
Chooser*list.font: -*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1
-
Chooser*Command.font: *-new century schoolbook-bold-r-normal-*-180-*
xdm-pid
xdm i�in gerekli i�lemler
(oynanamamasi gereken bir dosya).
xdm-errors
Adindanda anla�ilacagi gibi xdm
hatalarinin tutuldugu bir dosya.
Xacsess
XDMCP(X11R5 ve
yukarisi) i�in giris izni konturol dosyasi.Bu dosya sadece XDMCP
�zer�nde �alisan sorgulamalari denetler.Bu dosya ayrica
size ilgili makine �zerindeki gurublara genel bazi imtiyazlar yada
kisiltlamalar saglamanizi saglar.Ana sunucuya erisim iznini Display manager
xdm-config dosyasi ile ayarlar.Daha fazla bilgiyi se�ici konusunda
bulabilirsiniz
Give Console (konsol vermek)
-
Bu bir kulanici konsolunun kulanicisinin
degismasi i�in gereken programdir.Yanliz sizin bu dosyayi degistirmeniz
i�in iyi bir neden olmasi gerekiyor.
-
#!/bin/sh
-
# Assign ownership of the console to the
invoking user
-
# $XConsortium: GiveConsole,v 1.2 93/09/28
14:29:20 gildea Exp $
-
#
-
# By convention, both xconsole and xterm
-C check that the
-
# console is owned by the invoking user
and is readable before attaching
-
# the console output. This way a random
user can invoke xterm -C without
-
# causing serious grief.
-
#
-
chown $USER /dev/console
Take Console(konsol almak)
-
Bu dosya konsolu eski sahibi olan root'a
vermeki�in basit bir programdir.Bu dosyayi degistirmeyin.
-
bin/sh
-
# Reassign ownership of the console to
root, this should disallow
-
# assignment of console output to any
random users's xterm
-
# $XConsortium: TakeConsole,v 1.2 93/09/28
14:30:29
-
#
-
chmod 622 /dev/console
-
chown root /dev/console
Xsetup_0
-
Bu bir g�r�nt� ayar dosyasidir.Xconsole
ayarlarinini yapildigi dosyasidir.Girirslerin bilgisini sisteme bildirir
-
#!/bin/sh
-
# $XConsortium: Xsetup_0,v 1.3 93/09/28
14:30:31
-
/usr/X11R6/bin/xconsole -geometry 480x130-0-0
-daemon -notify -verbose -fn fixed -exitOnFail
Yerel Dosyalar
~/.xsession
Kulanicinin kendi istedigi olaylarin
baslatan programc�kt�r.Herhangi bir shell ile yazilabilir(~/.xinit
sadece Bash ve Bourne shell ile yazilmali).
~/.Xresources
Bu dosya okunarak hangi kaynak (source)
kulanildigini �grenebilir.
~/.xsession-errors
X session (X sunucu baslangici )hatalarini
tutuar.
~/.Xauthority
Kulanicinin sunusu ile ilgili bilgileri
tutar.
XDMCP
X Dispaly Manager
Control
Protocol'� kisaltarak olusturulan XDMCP ilk defa X11 le berirdi
ve xdm ile x terminaleri arasinda ki sorunlari haletmekte baya yol katedi.XDMCP
X sunucularinin dosyalarina bakrak hangi sunucularin �alisir oldugunu
bilir.Yanliz X sunucusunun dosyalarini xdm ba�langi�ta problem
oldugu zaman okur.Bunun di�inda SIGNUP sinyali geldigi zaman tekrar
okumaya zorlanir.XDMCP sunucularin xdm ile irtibat kurmalarina sunucunun
�nceligine bakmadan izin verir. XDMCP kullanici makinesinde
s�rekli olarak makineye gelebilecek mesajlari dinlemekdedir.Y�netici
mesajlari geldiginde gelen mesajin aynisini ve kullanici ekran g�runt�s�n�
g�nderir.Tabi bu iletisim kendi ayarlarinda olan �� ileti�im
protokolunden( DIRECT, INDIRECT, ve BROADCAST). birinde ve �zel portlardan
olur.
�leti�im Kurallar�
Yukar�da belirtilen iletisim
�e�itleri DIRECT, INDIRECT, ve BROADCAST �zerinde
durulacaktir
DIRECT ileti�im �e�idinde
sunucu belli olmayan bir bi�imde a�da g�nderdigi mesajlar
ile a�da sistem y�neticiligi yapmaktadir.DIRECT ilei�im
ile kurulan ilk baglandigi makinanin sunucusunu belirler.INDIRECT ileti�im
de kurulan baglantida X terminal kulan�c�n�n sunucular�
se�ebilmesi i�in bir se�enek kutusu ��kart�yor.Çok
sunuculu sistemlerde INDIRECT ileti�im daha avantajlidir.
INDIRECT ileti�im kulanilmasi
i�in Xaccess dosyasi derlenirken CHOOSER keyword se�enegi
i�aretlenmesi gerekir.Bir diger yol da BROADCAST sisteminin kullanilmasidir.Bu
sistemde a� daki sunuculara mesaj g�nderip kulanicinin hangi sunucuyu
se�ebilecegi ayarlaniyor.
Chooser
X terminaleri kulanirken ba�langicda
sunucularin se�ilmesi i�in gelen se�enek listesi (menu)
pek kulani�li degildir.Bu nedenle ilk giri�te sunucu listesi
geldigi zaman bu listede CHOOSER se�enegi se�ilmesi gerekir.
eng*.odhs.dsd.com CHOOSER BROADCAST
bu komut t�m eng ile basliyan
terminaleri(odhs.dsd.com de bulunan)chooser box(se�me kutusu) kulanarak
sunucu se�mesini saglar.INDIRACT mode kulan�larak se�ilebilecek
sunucularin listesi g�sterilir,tabiki bu daha iyidir.
eng*.odhs.dsd.com CHOOSER dsdapps.odhs.dsd.com
dbsrv.odhs.dsd.com test.odhs.dsd.com
Bu g�rd�g�n�z ayar
eng* b�lumundeki terminalerin programlarina bilgi bankalarina eri�ebilme
izinlerini ayarlar ve menudeki sunuculari test eder
Ayrica Xaccess dosyasi a�daki
diger sunucular i�in ufak programlar yazilmasini saglar.A�agidaki
�rnekte enginering(eng*) i�in ayarlama yapilmasini g�steriyor.
%ENGHOSTS dsdapps.odhs.dsd.com dbsrv.odhs.dsd.com
test.odhs.dsd.com
eng*.odhs.dsd.com CHOOSER %ENGHOSTS
Kulanicilarin g�rsel ayarlari
Xresources dosyasinda degi�iklik yapilarak d�zenlenir
xdm'i
�ali�tirmak
xdm ayarlarini test etmek i�in
makineyi kapatmadan console(shell �alisma ortami)
$ init 5 yazarak sisteme
level(seviye) 5 den yeniden girilir.
Eger level 5 den sistem yeniden a�ilmaz
ise /etc/inittab dosyasina bakmak gerekir burada xdm hangi ba�langi�
leveldan ba�layacagi burada belirtilmektedir(Slackware'in bazi s�r�mleri
4 �zerinden �ali�ir) .Ardindan xlogin giri� b�lumlerini
g�rebilirsiniz ve adinizi parolanizi yazarak xdm'i test edebilirsiniz.Eger
kulanici adinizi ,�ifrenizi dogru yazip ve dogru ba�langi�
seviyesinde olupda hale xdm �ali�miyorsa biti�ikteki
hata d�zeltme b�l�m�ne bakmanizi �neririm.
Bundan sonra artik bireysel ayarlarin
yapimina geldik.bunu /etc/initab dosyasindan yapabilirsiniz.Benim makinemdeki
degi�iklikler a�agidaki gibidir.
#/etc/inittab
id:3:initdefault:
to
id:5:initdefault:
Bu ayarla Linux her a�ildiginda
level(seviye) 5 den baslar.
xdm'de hata giderme
Eger xdm tam istendigi gibi �ali�miyorsa
yada hata olu�tugu d���n�l�yorsa ~/.xsession-errors
dosyasina bakilabilir.Eger sizin kullanicinizdan olu�an hatalar varsa
sizin kullanici alaniniza ~/.xsession-errors dosyasi yada benzer bir dosya
konulur.Bazi sik hatalar i�in a�agida gerekli a�iklamalar
yapilmi�tir.
Giri� kutusu ba�lang�da
g�z�km�yor
Bu sizin ayar dosyalarinizdan olu�an
bir hatadir.Sistem dosyalarini degi�tirmeden deneyin.Ayrica ba�langi�
�ali�ma seviyesi dogrumu?
Ba�arili bir ib�imde
girildi ve giri�kutusu belirdi
Sizin .xsession dosyaniz �ali�tirilabilir
degildir.Girmayi deneyin ve ardindan CTRL-RETURN tu�
takimlarina birarada basarak .xsession ba�langi� bol�m�n�
atliyabilirsiniz.Ardindan shell'e a�agidaiki komutlar ile .xsession
dosyasina �ali�ma haki verebilirsiniz.
# chmod +x .xsession
Giri� yaptiktan sonra ekran
titremeye ba�larsa ve giri� kutusu belirirse
Az�nce yaptigimiz gibi shell ortamina
d���p .xsession dosyanizdaki en son komutun foreground
dan ba�lamadigina bakin.
Son
Ümarim bu makale size X Display
Manager'in (X g�r�nt� y�neticisi) g�c�n�
etkilerini ve kulanim kolayligi g�sterebilmi�tir.Eger daha fazla
bilgi istiyorsaniz biti�ikteki baglantidan bilgi elde edebilirsiniz.Birdahaki
makalede X Windows'un g�venli hakinda olacaktir.Herhangi bir soru
veya �neriniz i�in biti�ikteki adresse mesj atabilirsiniz.
[email protected]
|