Professional Documents
Culture Documents
8 Cekirdegi Duzenlemek 21
8.1 Yeni yontem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.2 Konfigurasyon ipuclar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
11 PCI aygtlar 25
11.1 Mevcut PCI aygtlarnincelemek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.2 PCI donanm kaynaklar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
12 Linux USB 26
12.1 USByi etkin hale getirmek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
12.2 Son birkac adm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
12.3 usbdevfsyi baglamak (mount) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
13 Diff, Patch 27
13.1 Diff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
15 Kaynaklar 29
ii
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
iii
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
19.13Guvenli kabuk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
19.14ssh kullanm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
19.15sshd baslatmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
19.16Guvenli kopya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
19.17Guvenli kabuk dogrulama ve yetkilendirme tercihleri . . . . . . . . . . . . . . . . . . . . . 48
20 NFS 49
20.1 NFSe giris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
20.2 Temel NFS bilgileri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
20.3 NFSin ozellikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
20.4 Linuxta NFS, surum 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
20.5 NFSte guvenlik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
21 NFS kurulumu 49
21.1 /etc/exports uzerindeki duzenlemeler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
21.2 Ihrac kstlamalarile calsma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
21.3 Bir baska /etc/exports ornegi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
21.4 NFS3 sunucusunu calstrmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
21.5 Ihrac tercihlerini degistirme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
21.6 NFS istemcilerini yaplandrma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
21.7 NFS istemci servislerinin calstrlmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
21.8 Ihrac edilen NFS dosya sistemlerini baglama . . . . . . . . . . . . . . . . . . . . . . . . . . 52
21.9 Ihrac edilen dizinlerin icinde yaplan baglama islemleri . . . . . . . . . . . . . . . . . . . . 52
iv
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
1 Paylaslan Kutuphaneler
1.1 Paylaslan Kutuphanelere Giris
Linux sistemlerinde calstrlabilir iki cesit program tipi vardr. Birinci cesit programlar statik olarak
baglanms calstrlabilir programlar olarak adlandrlr. Statik calstrlabilirler (static executables) ih-
tiyaclar olan tum fonksiyonlar barndrrlar. Bir baska deyisle bunlar butun haldedirler. Bu yuzden
statik calstrlabilirler kullanlmak icin harici bir kutuphaneye ihtiyac duymazlar. Ikinci cesit ise dinamik
calstrlabilirler olarak adlandrlr. Bu ikinci tip programlara az sonra deginecegiz.
Statik Calstrlabilirler ile Dinamik Calstrlabirlerin Kyaslanmas Ilgili calstrlabilir programn
statik olup olmadgn ldd komutunu kullanarak anlayabiliriz.
# ldd /sbin/lilo
not a dynamic executable
ldd tarafndan bildirilen dinamik calstrlabilir degildir bilgisi bize lilo programnn statik baglantl
oldugunu anlatmaktadr.
Dinamik calstrlabilirler calsmalar icin gerekli fonksionlar almak icin paylaslms kutuphanelere
ihtiyac duyan, bir anlamda eksik programlardr. Bu yuzden ayn programa iliskin statik calstrlabilir
versiyonun boyutu dinamik calstrlabilir versiyonuna gore daha buyuk olacaktr.
# ldd /bin/ln
libc.so.6 => /lib/libc.so.6 (0x40021000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Gordugunuz gibi, ln calsmak icin libc.so.6 ve ld-linux.so.2 kutuphanelerine ihtiyac duyar. Bir kural
olarak, az once de bahsettigimiz gibi dinamik olarak baglanms programlar statik olarak baglanmslara
gore cok daha az yer tutarlar. Ote yandan bir Linux sistemindeki hemen hemen butun calstrlabilir
programlar dinamik baglantldrlar.
ld.so.conf
$ cat /etc/ld.so.conf
/lib
/usr/lib
/usr/X11R6/lib
/usr/i486-linuxlibc1/lib
ld.so.conf dosyas dinamik yukleyicinin paylaslan kutuphaneler icin bakacag butun dizinlerin listesini
icermektedir (otomatik olarak yuklenen /lib ve /usr/libin yannda)
ld.so.cache
Ancak dinamik yukleyicinin bu bilgiyi gorebilmesi icin bu bilginin ld.so.cache dosyas icerisine donus-
turulmesi gerekir. Bu islem ldconfig komutu calstrlarak yaplmaktadr.
1
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# ldconfig
ldconfig tamamlandktan sonra /etc/ld.so.conf ile yaptgnz tum degisiklikleri en son haliyle gosteren
/etc/ld.so.cache dosyasna sahipsiniz demektir. Bundan sonra dinamik yukleyici paylaslan kutuphaneleri
ararken artk sizin /etc/ld.so.conf dosyasna eklediginiz yeni dizinlere de bakacaktr.
# ldconfig -p | less
Paylaslan kutuphane yollarn konfigure etmek icin kullansl bir yontem daha vardr. Bazen dinamik
yukleyiciden paylaslan kutuphaneleri ararken /etc/ld.so.conf icerisinde yazl yollara bakmadan once
sizin belirlediginiz ozel bir dizin icerisine bakmasn isteyebilirsiniz. Bu yeni yuklenmis kutuphaneler,
calsmayan eski bir uygulamay kullanmak icin gerekebilir.
# export LD_LIBRARY_PATH="/usr/lib/old:/opt/lib"
LD LIBRARY PATH degiskeni export edildikten sonra , o andaki kabukta baslatlan calstrlabilirler
eger mumkunse /usr/lib/old ya da /opt/lib altndaki kutuphaneleri kullanacaklar, olmazsa /etc/ld.so.conf
icerisinde belirtilen yollarda gerekli kutuphaneleri arayacaklardr.
Linux paylaslan kutuphaneleri ile ilgili genel bilgilerimizi burada noktalyoruz. Bu konuda ayrntl
bilgiyi man ldconfig ya da man ld.so komutlar ile ogrenebiliriz.
2
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Burada -c parametresi arsiv yaratlmas icin kullanlr. -f paramtresi de kendisinden sonra gelecek olan
ismi yeni arsivin ismi olarak alglar. Simdi yine /home/knoppix altnda temp2 diye bir dizin olusturalm
ve bu dizinin icerisine arsivi acalm:
# mkdir temp2
# ls
arsiv.tar Desktop temp temp2 tmp
# cd temp2
# tar -xf ../arsiv.tar
# ls
temp
# cd temp
# ls
dir1 file1 file2
Bu ornekte de gordugumuz gibi arsivimizi ayn sekliyle -x parametresi ile acms olduk. Simdi diyelim
ki arsivimize yeni bir dosya eklememiz gerekiyor. Bunun icin ilk akla gelen sey arsivi acp yeni dosyamz
ekleyip sonra yeniden arsivlemekse buna hic gerek yok. Cunku -r parametresi yardmyla arsivi acmadan
yeni bir dosya eklememiz mumkun:
# touch ekle.txt
# tar -rf arsiv.tar ekle.txt
Simdi de arsivimizde hangi dosyalarn bulunduguna -t parametresi yardmyla bir goz atalm:
Dosya skstrmaya yarayan araclardan en yaygn olanlardan birtanesi de gzip2dir. gzip ile bir dosyay
skstrabilir ve gunzip ile skstrlms dosyay acabilirsiniz:
# gzip ekle.txt
# ls
arsiv.tar Desktop ekle.txt.gz temp temp2 temp3 tmp
# gunzip ekle.txt.gz
# ls
arsiv.tar Desktop ekle.txt temp temp2 temp3 tmp
#
Sonuc itibariyle bir dizin icerisinde yer alan dosyalar en iyi sekilde paketlemek icin bunlar once
arsivlemek sonra da skstrmak gerekir. Az once olusturdugumuz /temp dizini bu sekilde uygun bir
tar.gz paketi haline getirelim:
x: acmak icin
3
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Bundan sonra butun kaynak dosyalar tek bir dizin icerisinde yeralacak sekilde arsiv dosyas aclacaktr.
Bu sayede, bir arsivi actgnz zaman, o anda calstgnz dizin icerisine bu arsivde yer alan dosyalar
dolmayacak, onun yerine daha duzenli bir bicimde ayr bir dizin icerisine yer alacaklardr.
t: text listeleme icin. Herhangi bir acma islemi yaplmayacag anlamna geliyor.
Eger arsiv listesinin sol tarafnda ortak bir dizin belirtilmemisse, arsivinizi yeni acacagnz bir dizin
icerisine tasmanz ve acma islemini burada gerceklestirmeniz gerekmektedir. Aksi takdirde islem cok
karsk bir hal alacaktr.
ya da
Bu komutlardan herhangi birisi calsmazsa (ve tar yanls parametre kullandgnz soyluyorsa)bile hala
yapabilecegimiz seyler vardr. Okumaya devam ediniz :)
bzip2 Boruhatlar Sizin tar uygulamanz ksayollar ile bzip2 dosyalarn acamyorsa ne yapmak gerekir?
Neyse ki sisteminiz GNU versiyonu tar uygulamas icermese bile bu isi yapabilmek icin nerdeyse tum
Unix sistemlerinde kullanlabilen kolay bir yol mevcuttur. bzip2 dosyasnn icerigini goruntulemek icin
bir boruhatt yaratabiliriz:
# ls
# cat ../arsiv.tar.bz2 | bzip2 -d | tar -t | more
./temp/
./temp/dir1/
./temp/dir1/file1
./temp/file2
./temp/file1
# cat ../arsiv.tar.bz2 | bzip2 -d | tar -x | more
# ls
temp
#
4
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
2.8 Konfigurasyon
Modern kaynaklarn bircogu ana kaynak dizini icerisinde bir konfigurasyon script dosyas barndrr. Bu
script ozel olarak kaynaklar kurmak icin tasarlanmstr. Boylece sisteminiz uzerinde bu kaynaklar duzgun
bir sekilde derlenir. Calstrldg zaman, script sisteminizi inceler yeteneklerini hesaplar ve kaynaklarn
kurulumu ve yuklenmesine iliskin komutlar barndran Makefile dosyalar olusturur.
Bu script her zaman configure olarak adlandrlr. Eger ana kaynak dizini icerisinde bir configure
dosyas bulursanz iyi bir ihtimalle bu dosya sizin kullanmanz icin oraya koyulmustur. Eger configure sk-
riptini bulamyorsanz, kaynak dosyalarnz muhtemelen cesitli sistemler uzerinde calsacak sekilde dizayn
edilmis standart Makefile dosyas ile gelmistir. Bu durumda bundan sonra gelecek olan konfigurasyon
admlarn gecip dokuman make hakknda konustugumuz yerden itibaren takip edebilirsiniz.
5
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
kurulum yollarn kullanyor olabilir. Neyse ki configure scripti ile kullandgmz prefix secenegi sadece
kurulum yolunu degistirmemize izin vermekle kalmaz ayn zamanda klavuz sayfalar gibi cesitli sistem
parcalarnn da kurulum yolunu degstirmemize olanak saglar. Bircok kaynak arsivi henuz FHS uyumlu
olmadgndan, prefix seceneginin bu ozelligi cok kullansl olmaktadr. Muhtemelen her zaman kaynak pa-
ketinizi FHS uyumlu yapabilmek icin mandir=/usr/share/man ve infodir=/usr/share/info seceneklerini
configure scriptine gondermeniz gerekmektedir.
2.13 Configure
Degisik konfigurasyon seceneklerine bakp kullanacaklarnz sectikten sonra, configure programn cals-
trmann zaman gelmistir. Configure programn calstrrken, komut satrndan baz secenekler girmek
durumunda kalabileceginizi (genellikle ontanml secenekler calsr fakat bu tam istediginiz sonucu elde
edeceginiz anlamna gelmez) unutmaynz.
configure komutunu calstrmak icin
$./configure <secenekler>
$ ./configure
veya
seklinde yazabilirsiniz. Ihtiyac duydugunuz secenekler, konfigure edeceginiz belli paketlere bagmldr.
Configure, calstrdgnzda oncelikle bir sure icin sisteminizde hangi araclar ve hangi secenekler oldugunu
alglar ve bunlar ekrana basar.
2.14 config.cache
Konfigurasyon islemi sona erdiginde configure betigi, butun konfigurasyon verisini config.cache dosyasnda
depolar. Bu dosya configure betigi ile ayn yerde durur. Sistemde bir degisiklik yaptktan sonra eger
./configure komutunu tekrar calstrmanz gerekirse once rm config.cache dosyasn silmenizde fayda var,
aksi takdirde configure oncelikle bu bilgileri kullanacaktr.
$ make
Baz makefile dosyalarnda ontanml hedef yoktur ve derleme isleminin baslamas icin sizin bir tane
belirtmeniz gerekir.
6
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
$ make all
Bu komutlardan bir tanesini yazdktan sonra bilgisayar programnz object koda cevirirken biraz
zaman gececektir. Hicbir hata olmadgn varsayarsak, bu asamadan sonra derlenmis programnz artk
sisteminize kurmaya hazrsnz demektir.
2.18 Kurulum
Program derlendikten sonra bir onemli adm daha kalms demektir: kurulum. Program derlenmis olsa bile
kullanma hazr degildir. Programn tum bilesenleri kaynak dizinden sistem uzerinde kullanlacag dogru
dizinler icerisine kopyalanmaldr. Mesela tum binary dosyalar /usr/local/bin ve tum klavuz sayfalar
/usr/local/man vb. dizinleri icerisine yuklenmelidir.
Yazlm kurmak icin root kullancs olmanz gerekir. Bunun icin sisteme en bastan root olarak gi-
rebilir ya da ayr bir terminalde su yazarak root kullancs olabilirsiniz. Bundan sonra o andaki kabuk
oturumundan exit yazarak ya da control-D ye basarak ckana kadar root haklarna sahipsiniz demektir.
Eger zaten root kullancs iseniz, kurulum islemine devam edebilirsiniz.
# make install
make install yazmakla, make programna install hedefini gerceklestirmesini anlatms oluruz. Bu
hedef geleneksel olarak en son yaratlan kaynak dosyalarn sisteminiz uzerinde dogru yerlere kopyalan-
mas icin kullanlr. Boylece program kullanlabilir hale gelecektir. Eger herhangi bir prefix secenegi
belirlemezseniz, buyuk bir ihtimalle bir kac dosya ve dizin /usr/local dizin agac icerisine kopyalana-
caktr. Programnzn buyuklugune bagl olarak kurulum hedefi tamamlanmas icin bir kac saniyeden
birkac dakikaya kadar zaman gecebilir.
Ayrca dosyalar kolaylkla kopyalamak icin, make install kurulan dosyalarn dogru izin ve sahiplik
haklarna sahip oldugunu da gozetecektir. make install basaryla tamamlandktan sonra program artk
yuklenmistir ve kullanma hazrdr (ya da neredeyse hazrdr.)
$ man [program_ad]
Programnzn ancak baz gerekli ayar admlarnn gecilmesinden sonra calsmas da olasdr. Ornegin
eger web sunucusu yuklediyseniz, onu sistem acls srasnda da otomatik olarak calsacak sekilde ayarla-
manz ya da scriptlerin localhost altnda calsmas icin konfigurasyon dosyas icerisinde birtakm ayarlarn
yaplmas gerekir. Ayrca yine baz programlar icin de oncelikle /etc altnda yer alan programla ilgili kon-
figurasyon dosyasn da ayarlamanz gerekebilir.
$ program_ad
Tebrikler!
7
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
xsnow-1.41-1.i386.rpm
8
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Not: Bu paketi indirmek isterseniz kullanabileceginiz kaynaklardan bir tanesi de rpmfind.net3 olabilir.
Not: Eger burada kullanlan cesitli rpm terimleri aklnz karstryorsa sunu hatrlaynz: bir rpm
bir rpm paketini temsil ederken rpm daima bir program anlatmaktadr.
$ su
Password:
# rpm -i xsnow-1.41-1.i386.rpm
Eger bu komut sonunda hic bir cks uretilmiyorsa komutumuz calsms demektir. X masaustunde
eglenmek istiyorsanz Xsnow uygulamasn calstrmanz gerekir. Kisisel olarak genelde bir rpm yukle-
digimiz gorsel bir geri besleme bekleriz. Bunun icin -h (islemi gosteren isaret) ve -v (gorunur mod)
seceneklerini kullanmamz gerekir:
Bunun icin once rpm2i kaldralm ve sonra -v ve -h secenekleri ile yeniden yukleyelim:
Bir rpm tekrar yuklemek isteyeceginiz durumlar olabilir. Ornegin /usr/X11R6/bin/xsnow binarysini
yanlslkla sildiginizde bu durum ile kars karsya kalrsnz. Bu drumda rpmi rpm -e ile kaldrp tekrar
yuklemelisiniz.
# rpm -e xsnow
Dikkat ediniz; birazdan goreceginiz ornekte rpm den gelen bilgi mesaj paketin sistemden silinmesine
engel teskil etmez. Cunku bu bilgiye gore paket zaten sistemde bulunmamaktadr.
# rpm -e xsnow
error: package xsnow is not installed
9
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# rpm -e xsnow
error: removing these packages would break dependencies:
/usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1
Bu durumda Xsnow uygulamasn force secenegi ile yeniden yukleyebilirsiniz. Simdi zaten yuklubir
paketi -force kullanmadan yuklemeye calsalm:
# rpm -ivh xsnow-1.41-1.i386.rpm
warning: xsnow-1.41-1.i386.rpm: V3 DSA signature: NOKEY, key ID b1f6e46c
Preparing... ########################################### [100%]
package xsnow-1.41-1 is already installed
Bir rpmi yuklerken de nodeps secenegini kullanabilirsiniz. Aslnda duzgun kurulum ve kullanm
acsndan nodeps seceneginin kullanm pek tavsiye edilmese de bazen gerekebilir.
# rpm -ivh --nodeps xsnow-1.41-1.i386.rpm xsnow
Burada kucuk bir ipucu verelim: Genelde nadiren rpm -i secenegini kullanrz. Cunku rpm -U zaten
sistemde paket yoksa yine de kurulumu gerceklestirir. Ama -i seceneginden farkl olarak da eger paket
sistemde varsa varolan surumu gunceller. Bu kullanm ozellikle komut satrnda bazlar kurulmus bazlar
da henuz kurulu olmayan birden fazla paket yazdgnz zaman daha da kullansl olacaktr. Diyelim ki
sistemimizde sadece xsnow-1.41 versiyonu yuklu olsun. Simdi hem xsnow-1.42 hem de xfish tank rpmlerini
yuklemek icin -U secenegini kullanalm.
# rpm -Uvh xsnow-1.42-8.i386.rpm xfishtank-2.1tp-1.i386.rpm
warning: xsnow-1.42-8.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:xfishtank ########################################### [ 50%]
2:xsnow ########################################### [100%]
10
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# rpm -q xsnow
xsnow-1.42-8
Aslnda rpm paketlerle ilgili olarak sadece isim ve surum bilgisinden daha fazlasna sahiptir. rpm -qi
kullanarak Xsnow hakknda daha fazla sey ogrenebiliriz:
11
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# rpm -qa| wc -l
641
# rpm -qal| wc -l
97322
Bir ipucu: rpm -qa kullanarak coklu sistemler icin kullanm kolaylg saglanabilir. Eger sral cks bir
makinadaki dosyaya yonlendirip ayn isi baska makina icin de yaparsak, diff programn kullanarak hangi
paketlerin farkl oldugunu gozlemleyebiliriz.
12
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Bir dakika! Bu cksa gore GPG imzas gecerli degildir. Neyin yanls oldugunu anlamak icin cks
acklamal durumda inceleyelim:
# rpm --checksig -v xsnow-1.41-1.i386.rpm
xsnow-1.41-1.i386.rpm: MD5
sum OK: 8ebe63b1dbe86ccd9eaf736a7aa56fd8 gpg: Signature made Thu 10 May
2001 01:16:27 AM EDT using DSA key ID B1F6E46C gpg: Cant check
signature: public key not found
O halde problemimiz yazarmzn public anahtarn alamamamz. Paketin yazarnn web sitesinden
anahtar aldktan sonra (rpm -qi cksnda web adresi gosterilmektedir) bu key dosyasn import edersiniz.
Bir anahtar import edildiginde sizin sisteminizde keyring denilen ve icerisinde tum anahtarlarn tutuldugu
bir dosya icerisine yazlr. Boylece kullandgnz, indirdiginiz dokuman ve dosyalar bu anaharlara gore
kontrol edilerek guvenlik saglanmaktadr.
# gpg --import dan.asc
# rpm -K xsnow-1.41-1.i386.rpm
xsnow-1.41-1.i386.rpm: md5 gpg OK
Normalde hic bir sorun olmadgn anlatmak amacyla bu komut hic bir cks uretmez. Simdi isleri
biraz daha karstrp tekrar deneyelim:
# rm /usr/X11R6/man/man1/xsnow.1x.gz
rm: remove regular file /usr/X11R6/man/man1/xsnow.1x.gz? Y
# cp /bin/sh /usr/X11R6/bin/xsnow
cp: overwrite /usr/X11R6/bin/xsnow? y
[root@localhost erman]# rpm -V xsnow
S.5....T /usr/X11R6/bin/xsnow
missing d /usr/X11R6/man/man1/xsnow.1x.gz
Bu cks bize Xsnow binarysi icin yaplan MD5 sum, dosya boyutu ve mtime testlerinin basarsz
oldugunu gostermektedir. Ve butun klavuz sayfalar eksik durumdadr! Simdi bu bozulmus kurulumu
onaralm ve uygulamamz calstralm:
# rpm -e xsnow
[root@localhost erman]# rpm -ivh xsnow-1.42-8.i386.rpm
warning: xsnow-1.42-8.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...
########################################### [100%]
1:xsnow
########################################### [100%]
[root@localhost erman]# xsnow
Xsnow-1.42, December 14th 2001 by Rick Jansen (rja@euronet.nl)
WWW: http://www.euronet.nl/~rja/Xsnow/
13
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Bundan sonra da eger isterseniz apt-get, paketlerin yuklenecegi ve konfigure edilecegi (ya da kuru-
lacag) liste srasna gore isleme devam eder.
14
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# cat /etc/apt/sources.list
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
# Stable
deb http://ftp.de.debian.org/pub/debian stable main contrib non-free
deb http://ftp.de.debian.org/pub/debian-non-US stable/non-US main contrib non-free
....
# apt-setup
Bu arac sizin debian paketlerini bulabileceginiz CDROMlar, web siteleri ve ftp siteleri yerler konusunda
islem yapmanza olanak saglar. Isiniz bittiginde yaptgnz degisiklikleri /etc/apt/source.list dosyasna
kaydeder ve sordugunuz zaman apt-get yine bu listedeki kaynaklarda paketleri aramaktadr.
# man apt.conf
Dedigimiz gibi apt-get bizim kullandgmz install komutunun yannda bir cok komuta sahiptir. Bunlar-
dan bir tanesi de Debian sisteminizde yuklu her debian paketi icin statu ayarna uyan apt-get dselect-upgr
komutudur.
Her paket icin durum (statu) /var/lib/dbkg/status dosyasnda yer alsa da bu dosyay guncellemek
icin en iyi yol yine daha interaktif bir arac olan dselecti kullanmaktr.
# dselect
15
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Move around with ^P and ^N, cursor keys, initial letters, or digits;
Press <enter> to confirm selection. ^L redraws screen.
If you move the highlight to a line for a particular package you will
see information about that package displayed here. You can use o and
O to change the sort order and give yourself the opportunity to mark
packages in different kinds of groups.
16
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
yardm almak isterseniz herhangi bir zamanda ? tusuna basarak yardm alabilirsiniz. Sonra da tekrar
space tusuna basarak yardm ekranndan ckabilirsiniz.
#dpkg -s ickle
Package: ickle
Status: deinstall ok config-files
Priority: optional
Section: net
Installed-Size: 1364
Maintainer: Leo Costela <costelaaa@ig.com.br>
Version: 0.3.2-1
Config-Version: 0.3.2-1
Depends: ickle-common (= 0.3.2-1), libc6 (>= 2.2.4-4),
libglib1.2 (>= 1.2.0), libgtk1.2 (>= 1.2.10-4),
libgtkmm1.2, libicq2000 (= 0.3.2-1), libsigc++0,
libstdc++2.10-glibc2.2 (>= 1:2.95.4-0.010810),
xlibs (>> 4.1.0)
Suggests: ickle-control (= 0.3.2-1)
Description: An ICQ2000 client for GTK+
Ickle is an ICQ client which is able to communicate with ICQ servers
using the new ICQ2000 protocol. This offers much better reliability
than the older ICQ99 protocol. ickle has a constantly improving
interface, now supporting history browsing, and much more.
.
Ickle currently supports:
* Sending/Receiving messages, URLs and SMS messages
* Retrieving away messages
* Fetching user info from server
* Fetching/setting away messages
* Custom away messages
* Authorisation Requests
* "User Added You" messages
.
This version is compiled without gnome support, for gnome support
install the package ickle-gnome.
# dpkg -L frozen-bubble
/.
17
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
/usr
/usr/lib
/usr/lib/menu
/usr/lib/menu/frozen-bubble
/usr/lib/perl5
/usr/lib/perl5/auto
/usr/lib/perl5/auto/fb_c_stuff
/usr/lib/perl5/auto/fb_c_stuff/fb_c_stuff.bs
/usr/lib/perl5/auto/fb_c_stuff/fb_c_stuff.so
/usr/games
/usr/games/frozen-bubble
/usr/games/frozen-bubble-editor
/usr/share
/usr/share/doc
/usr/share/doc/frozen-bubble
/usr/share/doc/frozen-bubble/README
/usr/share/doc/frozen-bubble/AUTHORS
/usr/share/doc/frozen-bubble/copyright
/usr/share/doc/frozen-bubble/changelog.gz
/usr/share/doc/frozen-bubble/changelog.Debian.gz
/usr/share/man
/usr/share/man/man6
/usr/share/man/man6/frozen-bubble.6.gz
/usr/share/man/man6/frozen-bubble-editor.6.gz
/usr/share/gnome
/usr/share/gnome/apps
/usr/share/gnome/apps/Games
/usr/share/gnome/apps/Games/frozen-bubble.desktop
/usr/share/perl5
/usr/share/perl5/fbsyms.pm
/usr/share/perl5/FBLE.pm
/usr/share/perl5/fb_c_stuff.pm
/usr/share/perl5/fb_stuff.pm
/usr/share/pixmaps
/usr/share/pixmaps/frozen-bubble-icon-48x48.png
/usr/share/pixmaps/frozen-bubble-icon-16x16.png
/usr/share/pixmaps/frozen-bubble-icon-32x32.png
/usr/share/pixmaps/frozen-bubble.xpm
Bunun tersine belirli bir dosyaynn hangi pakete ait oldugunu anlamak icin de -S secenegini kullana-
bilirsiniz.
# dpkg -S /usr/share/pixmaps/frozen-bubble.xpm
frozen-bubble: /usr/share/pixmaps/frozen-bubble.xpm
# dpkg -i /tmp/dl/xsnow_1.40-6_i386.deb
eger .deb olarak aradgnz dosyay bulamayp yerine .rpm ya da baska bir paket formatnda bul-
duysanz alien programn kullanabilirsiniz. alien program paketleri cesitli formatlardan .deb formatna
cevirmektedir.
18
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
6.4 Ag Merkezi
Linuxun en unlu ve iddial oldugu alanlardan biri oldukca guclu ag yaps, ozellikle de TCP/IP destegidir.
Eger simdiye kadar TCP/IP desteginin Linux cekirdeginde yeraldgn tahmin ettiyseniz, haklsnz.
Cekirdek, standartlarla uyumlu, yuksek seviyeli bir arabirim ile ag uzerinden veri gonderilmesini ve
alnmasn destekler. Arka plnda ise Linux cekirdegi sizin ethernet kartnz ya da pppd daemon ile dusuk
seviyeli baglantlar halleder ve Internet iletisimini saglar. Bu konunun detaylar bir sonraki dersin konu-
sudur.
19
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
20
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
bir cekirdek kurmay da isteyebilirsiniz. Genelde en dogru yaklasm dagtmnzn yeni ya da guncellenmis
kaynak kodu paketinden kurulum yapmaktr. Bu paket sizin Linux sisteminizde optimal olarak calsmak
uzere yamanms ve konfigure edilmis cekirdek kaynak kodlarn icerecektir.
8 Cekirdegi Duzenlemek
Cekirdegi derlemeden once baz duzenlemeler yapmamz gerekecek. Bu duzenlemeler, yeni cekirdegimizde
hangi ozelliklerin olacagn ve hangilerinin olmayacagn belirleyecek. Bu srada hangi ozelliklerin ana
cekirdek dosyasnda yeralacag (ve boot islemi srasnda yuklenecegi) hangilerinin ise daha sonradan
eklenebilir moduller olarak derlenecegine de karar verecegiz.
Eski zamanlarda cekirdegi duzenlemek ve derlemek ciddi bir problemdi. Zira config betigini castrmay
gerektiriyordu. Herne kadar hala bu imkan mumkun olsa da biz pek tavsiye etmiyoruz, tabi yuzlerce soruya
teker teker cevap vermek isterseniz siz bilirsiniz.
21
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Simdi make menuconfig ya da make xconfig secenegi ile cekirdek duzenleme ortamna girelim.
Kod olgunlugu seviye secenekleri: Bu kategoride tek bir secenek vardr. Prompt for development
and/or incomplete code/drivers (gelistirme ve/veya tamamlanmams secenekleri secebilmek ister misi-
niz ?) Eger bu secenegi secerseniz, deneysel kabul edilen bir cok ozellik (ReiserFS?, devfs vs.) kendileri
ile ilgili kategoriler altnda erisilebilir olacaklardr. Eger bu secenek secilmediyse goreceginiz butun ozel-
likler kararl yap altnda kullanlmakta olan ozellikler olacaktr. Bunu secmeniz, secim sanslarnz
arttracagndan iyi olur.
Moduller ve Islemci ile alakal secenekler: Loadable module support (Yuklenebilir modul destegi)
Bu konfigurasyon kategorisinin altnda cekirdegin modul destegi ile alakal uc secenek vardr. Genelde
ucunun de secili olmas gerekir.
Processor type and features (islemci cinsi ve ozellikleri): Bu bolum cesitli islemci konfigurasyon
seceneklerini icermektedir. Burada Symmetric multiprocessor support ozellikle onemlidir ve birden fazla
islemciye sahip makinalar icin elzemdir. Aksi takdirde sisteminizdeki ilk CPU alglanacaktr. MTTR Sup-
port secenegi genellikle secilir , cunku modern sistemlerde X konusunda performans arts saglamaktadr.
General and parallel port options: (Genel ve paralel port secenekleri)
General setup (Genel duzen): Bu bolumde Networking ve PCI Support secenekleri genel olarak secili
olmaldr. Kernel support for ELF binaries (Elf calsabilir programlar icin cekirdek destegi) de. a.out
ve MISC binary secenekleri de tavsiye edileir fakat bunlarn modul olarak derlenmesi daha iyi olacaktr.
System V IPC ve Sysctl support seceneklerini de secmeye ozen gosterin. Bu secenekler hakknda
daha fazla bilgi edinmek isterseniz help secenegi ile detayl bilgiler alabileceginiz daha once belirtmistik.
Paralel port secenegi ozellikle yazc kullananlar icin gerekecektir. Tam bir yazc destegi icin Cha-
racter Devices (karakter aygtlar) bolumunden Paralel Printer Support (Paralel yazc destegi) ksmn
da secmek gerekir.
RAID ve LVM Multi-device support (RAID and LVM)(Coklu aygt secimi): Bu bolumde Linuxun
yazlmsal RAID ve mantksal bolum yoneticisi ozellikleri secilir. Yazlmsal RAID, disklerinizin birbirleri
ile yedekli olarak calsmasn ve bu sayede performans ve guven artsn saglamay amaclar. Yazlmsal
RAID konusunda detayl bilgilere sondaki kaynaklar bolumunden ulasabilirsiniz.
Networking and related devices(Ag ve ilgili aygtlar) Networking options (Ag secenekleri): Bu bolumde
her turlu ag secenekleri mevcuttur. Linux sisteminizi tipik bir aga baglayacaksanz, Packet socket Unix
domain sockets ve TCP/IP Networking seceneklerini secmeniz gerekmektedir.
Bu temel secenekler dsnda bir cok secenek daha, mesela Network packet filtering (Ag paket filtre-
leme, ip tables kullanmak, firewall kurmak icin) bulunmaktadr.
Cekirdeginizin desteklemesini istedigini ethernet kartlarn da belirtmeniz gerekmektedir. Aradgnz
kart muhtemelen Ethernet (10 or 100MBit) alt kategorisinin altnda bulunmaktadr.
IDE support(IDE destegi) ATA/IDE/MFM/RLL support: Bu bolumde IDE suruculer, CD ve DVD
Romlar ve diger benzer cevrebirimler kullananlara ozgu secenekler yeralmaktadr. Eger sisteminizde IDE
diskleri varsa Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support secenegini secin.
Bunun dsnda Include IDE/ATA-2 DISK support(IDE/ATA2 disk destegini kat) ve mevcut ana
kartnza uygun chipset seceneklerini secin ve bunu cekirdege ekleyin, modul olarak derlemeyin ki sis-
teminiz boot edebilsin). Eger IDE CD Roma sahipseniz, Include IDE/ATAPI CD-ROM support
secenegini de eklemeyi unutmayn. Anakartnzn chipset destegini secmeden de IDE disklere muhtemelen
ulasabileceksiniz fakat bu durumda ana kartn performans avantajlarndan yararlanmams oldugunuzdan
daha yavas bir erisimle kars karsya kalabilirsiniz.
Enable PCI DMA by default if available (eger varsa PCI DMA destegini ac) secenegi de heme
hemen butun sistemler icin tavsiye edilen bir ozelliktir. DMA olmadan IDE cevrebirimleri PIO modunda
ve duruma gore potansiyellerinin on onbes kat daha yavas calsabilirler.
Belli bir disk icin DMAnn etkin hale geldigini hdparm -d 1 /dev/hdx ile root olarak kontrol edebi-
lirsiniz. Burada /dev/hdx DMAi etkin hale getirmek istediginiz diskin addr.
SCSI support(SCSI destegi) Bu kategori SCSI diskler ve cevrebirimlerle ilgili butun secenekleri ba-
rndrr. Eger SCSI tabanl bir sisteminiz varsa SCSI support, SCSI disk support, SCSI CD-ROM
support ve SCSI tape support seceneklerinizi ihtiyaclarnza gore secebilirsiniz.
IDE disklerde oldugu gibi eger sistemin yuklu oldugu disk SCSI bir disk ise bu destekleri yuklenebilir
moduller olarak degil ana cekirdek dosyasnn icine koymanzda fayda var.
Bunlardan baska SCSInin gerektigi gibi calsabilmesi icin SCSI low-level drivers bolumune gidip,
SCSI kartnzn secili oldugundan emin olun, yine bu secenek de cekirdegin icinde direkt yer almaldr,
modul olarak degil.
Miscellaneous character devices (Cesitli karakter aygtlar): Character devices: Bu bolum cesitli cekir-
dek aygt suruculerini icerir. Virtual terminal ve Support for console on virtual terminal seceneklerinin
22
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
secili oldugundan emin olun. Bunlar sistem acldktan sonra standart text tabanl terminallerin sizi
karslamas icin gereklidirler.
Buyuk ihtimalle Unix98? PTY supportu da secmenizde fayda var. Bunlar dsndaki her seyi secimi
size kalmstr. Eger paralel yazc kullanmak istiyorsanz Paralel printer support secenegini secmeniz
gerektigini tekrar hatarlatalm.
Enhanced real-time clock support tavsiye edilir, /dev/agpgart (AGP destegi) ve Direct Rende-
ring Manger da X altnda performans saglayan Linux 3D hzlandrcl kartlar icin gereklidir. Xi bu hzl
modda calstrmak icin cekirdek derleme dsnda da baz ayarlar yapmak gerekecektir.
File systems and console drivers(Dosya sistemleri ve konsol suruculeri): File systems: Bu kategorideki
secenekler tahmin edeceginiz gibi dosya sistemlerini icermektedir. Root (/) dosya sisteminiz icin gerekli
olan dosya sistemi destegini (ext3, reiserfs, jfs, xfs vs.) cekirdege dahil etmeniz gerekmektedir. Bundan
baska /proc file system support secenegi de bir cok dagtm icin elzemdir.
Genel olarak /dev/pts file system support for Unix98? PTYs secenegini secmeniz tavsiye edilir,
tabi /dev file system support secenegini secmiyorsanz. O takdirde /dev/pts secenegini secilmemis
brakmanz gerekir.
Console drivers: Tipik olarka herkez VGA text console (x86 sistemler icin elzemdir) sececektir.
Isterseniz Video mode selection support de secebilirsiniz. Frame buffer support sectiginiz takdirde
ise text tabanl ekran yerine grafik ekranda yazlar gorebilirsiniz. Fakat bu seceneklerini bazlar X ile
karsklklara sebep olmaktadr bu yuzden duz VGA konsola bagl kalmakta, en azndan baslangcta fayda
vardr.
23
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
boot=/dev/hda
delay=20
vga=normal
root=/dev/hda1
read-only
image=/vmlinuz
label=linux
lilo.confa yeni bir baslangc secenegi eklemek icin sunlar yapn. Once /usr/src/linux/arch/i386/-
boot/bzImage dosyasn /vmlinuz2 gibi bir isimle roota (/) kopyalayn.
Ardndan lilo.conf dosyanzn son uc satrn kopyalayp tekrar yapstrn. Nerdeyse bitti :)
Simdi lilo.conf dosyanzn asagdaki gibi gozukmesi lazm
boot=/dev/hda
delay=20
vga=normal
root=/dev/hda1
read-only
image=/vmlinuz
label=linux
image=/vmlinuz
label=linux
Once ilk image= satrn image=/vmlinuz2 seklinde degistirin ve ikinci label= satrn da la-
bel=oldlinux seklinde degistirmeyi unutmayn. Tabi eger dosyann yukarlarnda bir yerlerde delay=20
gibi bir satr yoksa boyle bir satr da eklemeniz gerekecek. Eger boyle bir satr varsa bekleme suresini
minimum 20 yapn.
Sonuc olarak nihai lilo.conf dosyanz asagdaki gibi gozukecek;
boot=/dev/hda
delay=20
vga=normal
root=/dev/hda1
read-only
image=/vmlinuz2
label=linux
image=/vmlinuz
label=oldlinux
Butun bu degisiklileri yapp text editorunuzden cktktan sonra lilo komutunu verip diskinizdeki kon-
figurasyonun guncellenmesini saglayn. Eger bunu yapmazsanz yaptgnz degisiklikler bir ise yaramaya-
caktr. Ayrca bunu yapnca boot map dosyas da guncellenecektir.
24
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
11 PCI aygtlar
Bu bolum PCI aygtlar ile calsmann ince detaylarndan bahsedecektir. Linux altnda PCI aygt destegini
saglamak basitce General Setup bolumu altnda PCI Support secenegini secmekle olur. Bunun
yannda PCI device name database secenegini secmeniz de tavsiye edilir. Bu sayede PCI aygtlarnn
aygt numaras ve saysal bilgileri yerine gercek ingilizce isimlerini gorebilirsiniz.
Ilk kolon bir IRQ numaras verir, ikinci kolon ise kernel tarafndan o kesmeden kac tane uretildigini
gosterir. Son kolon ise sozkonusu donanmn ksa ismini icerir.
Donanmlarnzn kullanmakta oldugu IO portlarnn listesini de soyle gorebilirsiniz
25
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
12 Linux USB
Cekirdegi konfigure ederken buyuk ihtiamlle USB support bolumu dikkatinizi cekmistir. Burada Uni-
versal Serial Bus (Evrensel Seri Veriyolu) denilen USBnin ozellikleri bulunmaktadr. Nispeten yeni
bir veriyolu olan USB ozellikle cevrebirim alannda gittikce yaygnlasmaktadr, simdiden USB klavye,
fare, modem, printer, scanner hatta depolama cihazlar ckmstr ve gun gectikce de daha yaygn kul-
lanlmaktadrlar.
Linux uzerinde USB destegi de sadece bir kac yllk oldugundan, bircok Linux kullancs simdiye kadar
pek USB cihaz kullanmams ya da Linux altnda USB desteginin tam nasl calstgn bilmiyor olabilir.
Sistem boot ettiginde otomatik olarak USB sistemi baglayabilmek icinse fstabn icine /proc satrndan
sonra
26
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
13 Diff, Patch
Unixde herseyin bir dosya olarak ele alndgn ve bu sekilde islem gordugunu daha once anlatmstk. Bu
sebeple ozellikle text isleme komutlar oldukca gelismis durumdadr. Bir dosya icinden istenen kelimeleri
ayklama, onlar sralama vs. gibi islemleri zaten daha onceki derselerde yapmstk. Bir baska onemli
islem de bir dosyaya yaplan degisiklikleri bir degisiklikl dosyasnda toplayp, onceki dosya ve degisiklileri
kulanarak dosyann son haline ulasmak.
Bu is icin kullandgmz komutlar diff ve patch komutlar.Simdi bunlar teker teker ele alyoruz.
13.1 Diff
Once bir dosya yarOrnek olarak 2.4.18 kernelimize preemptive patchini uygulayacagz.atalm. Bu dosya
bizim evimizde verecegimiz bir partinin isim listesi olsun.
birinci.txt
Ve kaydedelim. Simdi ise ayn dosyay degistirip, partiye katlamayacaklarn belirtmis olan Osman,
Mehmet ve ve Ebruyu ckartalm. Yerine Mine ve Elay koyallm, partimizde daha cok kz olsun ;)
Dosyann son hali
Ali
Berktan
Tanya
Kemal
Ela
Mine
3d2
< Ebru
5,6d3
< Osman
< Mehmet
7a5,6
> Ela
> Mine
Belki ilk baksta cok anlaml gelmeyebilir bu ct ama aslnda cok da anlaml ed komutlardr bunlar.
Acklamak gerekirse su anlamlara gelmektedirler
birinci.txt dosyasnn ucuncu satr ikinci dosyada yok onu sil birinci.txt dosyasnn besinci ve altnc
satrlar olan Osman ve Mehmet ikinci dosyada yok onlar sil ikinci dosyann besinci ve altnc satrlar
ilk dosyada yok, onlar yedinci satrdan itibaren ekle (Kemalin ardna)
simdi cok populer birisi oldugunuzu ve bu listenin binlerce kisi uzunlugunda oldugunu dusunun.
Ya ikinci bir listeyi de herkese gondereceksiniz, yada bu birkac satrlk diff dosyas ile bu isi kolayca
halledeceksiniz.
Tabi bunun icin sozkonusu degisiklikleri bir dosya haline getirmemiz gerekmekte, bu da ilk derste
ogrendigimiz yonlendirme komutlar ile gerceklesmekte:
27
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Hersey yolunda gittiyse su an birinci.txt dosyas ve son.txt dosyalarnn ayn olmas lazm. Bakalm
ayn mymslar ?
Herhalde diff gibi bir komutumuz varken, binlerce satrlk iki dosyann ayn olup olmadgn gozumuzle
kontrol edecek degildik :) Gordugunuz gibi diff komutu hicbir ckt vermemis, dolaysyla bu iki dosyann
ayn oldugunu onaylamstr.
Basitce iki dosya icin bu sekilde kullanlan patch ve diff komutlar yuzlerce dosya icin de kullanlabilir.
Ornek olarak 2.4.18 kernelimize preemptive patchini uygulayacagz.
28
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Gordugunuz gibi patch komutu, sozkonusu dosyay alp, o dosya dogrultusunda gerekli yerlerde gerekli
degisiklikleri yapt.
Simdi tekrar make xconfig yapyoruz ve goruyoruz ki biraz once olmayan Preemptible Kernel secenegi
artk var.
Bu sekilde bir yada daha fazla yama ile cekirdegimizi yamayabilir istedigimiz gibi yeni ozellikler ek-
leyebiliriz. Burada unutulmamas gereken yamann surumu ile cekirdek kodunun surumunun ayn olmas
gerektigi, aksi takdirde problemlerle karslasma ihtimalimiz yuksek.
15 Kaynaklar
Linux Kernel How-to kernel kurulum bilgilerini edinmek icin iyi bir kaynaktr. LILO, Linux Crash Rescue
How-TO dosyalar da sizlere yardmc olabilir.
Linux Kernelleri www.kernel.org adresinde bulunmaktadr
www.linuxdoc.org adresinden Linux konulu hemen her turlu bilgiye ulasabilirsiniz. Burada Guides
baslg altndaki belgeler ozellikle oldukca faydal olacaktr. Eric S. Raymondun Unix ve Internet Fun-
damentals How-To belgesi de bilgilendirici olabilir.
Turkce icerik olarak da yukarda saylan bir cok belgenin turkcelerini belgeler.org adresinde bulabi-
leceginiz gibi, ileriseviye.org ve fazlamesai.net gibi kaynaklardan da faydalanabilirsiniz.
29
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
protokolu olarak isimlendirilen ve daha yuksek ve soyut seviyeli bir protokol kullanr. Mutlaka TCP/IP
sozunu daha once duymussunuzdur. Bu bir protokol suitidir ve bunyesindeki protokoller bugun Internet
diye bildigimiz devasa uluslararas ag uzerindeki iletisimin temel kurallarn belirler (TCP/IPnin aclm:
Trasmission Control Protocol / Internet Protocol).
00:01:02:CB:57:3C
Ethernet sistemi CSMA/CD (Carrier Sense and Multiple Access with Collision Detection - Tasyc
Alglama ve Carpsma Tespitli Coklu Erisim) isimli bir yontem kullanr. CSMA/CD sistemi ksaca su
demektir: tum cihazlar tek bir fiziksel ortam uzerinden haberlesirler, belirli bir anda sadece tek bir cihaz
yayn yapabilir ve tum cihazlar eszamanl (simultane) olarak yaplan yayn dinleyebilirler. Eger 2 farkl
cihaz ayn anda yayn yapmaya kalkarsa iletisim carpsmas olusur, bu tespit edilir ve her iki cihaz da cok
ksa bir sure beklerler (bu sure belli bir aralkta gelisiguzel tayin edilir) ve tekrar yayn yapmaya calsrlar.
Boylece tek bir seferde tek bir cihazn belli bir uzunluktaki mesajn ag ortamndaki bilgisayarlara iletmesi
pratik olarak saglanr, bir cihazn urettigi ve ag ortamnda yaynladg mesajn kime ait oldugu da mesaja
eklenen ve yukarda bahsi gecen Ethernet adresi sayesinde belirlenmis olur.
192.168.1.1
Her bir cevresel ag cihaz icin, cekirdekte, ilgili bir arabirimin varolmas gerekmektedir. Ornegin Li-
nuxda, ethernet arabirimleri, eth0 ve eth1 seklinde isimlendirilmislerdir. PPP arabirimleri ppp0 ve ppp1
olarak ve FDDI arabirimleri ise fddi0 ve fddi1 seklindeisimlendirilmislerdir. Bu arabirim isimleri, bir ayar
komutunda fiziksel bir cihaz belirtmek istediginiz zaman kullanlmakta ve bunun dsnda bir kullanm
alanlar bulunmamaktadr.
TCP/IP ag tarafndan kullanlmadan once, her bir arabirime dunyann geri kalanyla haberlesildiginde
kimlik numarasyms gibi kabul edilen, bir IP adresi atanmaldr. Bu adres, arabirim isminden farkldr,
eger bir arabirimi kap olarak dusunurseniz, adresi de o kapnn uzerine yapstrlms isim plakas (ya da
kap numaras) olarak dusunebilirsiniz.
Donanmn bir ksm tarafndan ki bu donanm parcas En Buyuk Aktarm Birimi (MTU - Maximum
Transfer Unit) olarak bilinir, islenen datagramlarn boyutlarn kstlamak gibi bir ayarn yaplmas da
mumkundur.
IP ag protokolu, adresleri, 32 bitlik numaralar olarak gorur. Her bir makineye, bulundugu ag ortamnda
tek olan bir numara atanmak zorundadr.Internet Protokolunun genelde 4. surumu kullanlmaktadr.
Yerini almak uzere tasarlanms olan bir de 6. surumu vardr. IPV6 degisik bir adresleme semas kullanr ve
daha buyuk bir adresleme alanna sahiptir. Linuxda IPv6 destegi bulunmaktadr, ancak henuz bu kitabn
kapsamna alnmamstr. Linux cekirdegindeki IPv6 destegi iyidir, ancak ag ortamnda kullanlmasn
saglayacak uygulamalarn IPv6ya gore degistirilmesi gerekmektedir.
Eger sadece, baska bir ds ag ile iliskisi bulunmayan, yerel bir agda calsyorsanz, bu numaralar kendi
istediginiz sekilde atayabilirsiniz. Baz IP adres aralklar, belirli tipte ozel aglara ayrlmstr. Ancak In-
ternet uzerindeki siteler icin, bu numaralar, NIC (Network Information Center - Ag Bilgi Merkezi) olarak
bilinen, merkezi bir otorite tarafndan atanmaktadr. Cogunlukla, IP adresleriniz sizin yerinize IP adre-
sinizi alan bir saglayc tarafndan atanr. Bunun yerine, agnz icin kullanacagnz IP adresini dogrudan
NICden hostmaster@internic.net adresine yazarak bir eposta ile ya da http://www.internic.net/ adre-
sindeki formu doldurarak alabilirsiniz.
30
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
IP adresleri, okunulabilirligi arttrmak amacyla, oktet denilen, 4 adet 8 bitlik (1 baytlk - 0 dan
255 e kadar) numaraya ayrlmstr. Ornegin quark.physics.groucho.edu adresindeki makinenin (Grouche
Universitesinde, fizik bolumundeki quark isimli makinenin) IP adresi 0x954C0C04 (onaltlk sistemde)
olsun.
Bu adres 149.76.12.4 olarak farkl bir gosterimde de yazlabilir. Bu ikinci gosterim, genelde noktal
dortlu gosterim olarak bilinir.
Bu tip gosterimin baska bir nedeni ise, IP adreslerinin ilk oktetlerinin ag numarasn, geri kalan-
larn ise makine numarasn gostermeleridir. NICe IP adresi almak icin basvurdugunuzda kullanmay
dusundugunuz her makine icin size bir IP verilmez, onun yerine size bir ag numaras atanr ve bu aralkdaki
tum gecerli IPleri tercihinize gore agnzdaki makinelere atamanza izin verilir.
Makine ksmnn says, agn buyuklugune bagldr. Farkl ihtiyaclar karslamak uzere, IP adreslerinde
farkl noktalardan ayrlan, farkl ag snflar tanmlanmstr. Bu snflar su sekilde tanmlanmslardr:
A Snf: A snf aglar 1.0.0.0dan 127.0.0.0a kadar olan aglar kapsar. Sadece ilk oktet, ag numarasn
belirler, geri kalanlar ise her bir ag icinde kullanlabilecek (atanabilecek) makine saysn belirler ki bu
snfta, dolaysyla, 24 bit makine ksmna ayrlmstr. Bu da kabaca, ag basna 1.6 milyon makine anlamna
gelmektedir.
B Snf: B snf aglar, 128.0.0.0dan 191.255.0.0a kadar olan aglar icermektedir. Ag numaras, ilk iki
oktet ile belirlenir. Bu snf ile 65,024 adet makineden olusan 16,320 adet ag tanmlanabilir.
C Snf: C snf aglar ise 192.0.0.0 ile 223.255.255.0 arasn kapsar. Ilk 3 oktet ag numarasn belirler ve
geri kalanlar da her bir ag icinde bulunabilecek makine saysn belirler. Dolaysyla her biri 254 makineli
yaklask 2 milyon ag tanmlanabilir.
D, E, ve F Snflar: 224.0.0.0 ile 254.0.0.0 arasnda kalan adresler, ya deneysel amacldrlar ya da belirli
amaclar icin ayrlmslardr ve herhangi bir ag tanmlamazlar. Bir internet uzerinde, paketlerin, bir seferde
bir cok noktaya iletilmesi hizmetini veren IP cokluyayn (IP Multicast) icin bu aralktaki adresler atanr.
Yukardaki 149.76.12.4 IP numaral quarkn adresi, B snf olan 149.76.0.0 numaral agdaki 12.4
numaral makineyi belirtir.
Bir onceki listede, tum olas numaralarn kapsanmadgn fark edebilirsiniz. Bunun nedeni 0 ve 255 nu-
maral oktetlerin ozel amaclar icin ayrlms olmasndandr. Bir adreste, host (konak) bilgisayar tarafndaki
bitlerin tamam 0 ise o adres ag belirler, eger bu bitlerin tamam 1 ise bu adres yayn (broadcast, agn
tumune yayn) adresi olarak bilinir. Buna gore 149.76.255.255 gecerli bir makine adresi belirtmez onun
yerine 149.76.0.0 agndaki tum makineleri belirtir.
0.0.0.0 ve 127.0.0.0 ag ise sizin kendi makinenizdeki IP trafigini rahatlatmak amacl, sizin kendi
makinenizi ifade eder. Birincisine ontanml rota (default route) digerine de geridonus (loopback) adresi
denir.
Yani bilgisayarnz icinde kalan, yerel aga ckmanz gerektirmeyen durumlarda 127.0.0.1 IP adre-
sini kullanarak yine kendi bilgiyarnz icinde, programlarn haberlesmelerinisaglayabilirsiniz. Genelde,
127.0.0.1 adresi, ksa devreymis gibi davranan, geridonus arabirimi (loopback interface) olarak adland-
rlan ve sizin kendi makinenizde bulunan ozel bir arabirime ayrlmstr.
Yukardaki ifconfig komutu eth0 (dolays ile eth0n donanm adresini) 192.168.1.1 numaral IP
adresi ile eslestirir. Bu islevin yan sra ayn komut satr IP ile ilgili diger bilgileri de sisteme soyler:
broadcast adresi (192.168.1.255) ve ag maskesi (netmask) (255.255.255.0). Bu komutu calstrldgnda
eth0 arayuzunuz aktive olmustur ve bir IP adresine sahiptir.
eth0
31
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
HWaddr 00:01:02:CB:57:3C
Bcast:192.168.1.255
Mask:255.255.255.0 Metric:1
lo
Yukarda ayarlar yaplms bir eth0 arayuzunun yansra bir lo (localhost) arayuzu gormektesiniz. lo
isimli arayuz ozel bir sanal ag arayuzudur ve herhangi bir ag baglants olmamas halinde de TCP/IP
uygulamalarnn bilgisayarda yerel olarak calsmalarn saglamak icin gelistirilmistir.
127.0.0.1 localhost
192.168.1.1 mybox mybox.gentoo.org
192.168.1.2 testbox testbox.gentoo.org
192.168.1.3 mailbox mailbox.gentoo.org
Soz konusu /etc/hosts dosyasnda zorunlu olarak localhost 127.0.0.1 eslestirmesi olduguna dikkat
edin. Ayrca yerel agdaki tum bilgisayarlarn isimleri (hostname) ksa ve uzun formatta tanmlanmstr.
Bu /etc/hosts dosyasn diger bilgisayarlara da kopyaladktan sonra artk bilgisayara IP adresleri yerine
tanmladgmz isimlerle hitap edebiliriz, mesela artk ping mybox gibi bir komutu calstrabiliriz!
32
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Yukardaki /etc/resolv.conf ayar dosyasna gore uzun formatta verilmeyen her isim (testbox.gentoo.org
yerine testbox demek gibi) yerel agdaki bir makinann ismi olarak kabul edilmelidir. Yine yukardaki
dosyadaki bilgiler 192.168.1.1 adresli bir makinada bir DNS sunucunun calstgn ve 192.168.1.2 adresli
makinada da yedek DNS sunucusunun beklemekte oldugunu soylemektedir. Aslnda aga bagl hemen
hemen tum Linux PCler resolv.conf dosyasnda ontanml bir isim sunucu icerirler (aga aktif olarak bagl
olmasalar bile). Bunun sebebi ISS (Internet Servis Saglayc) sirketinin sundugu DNS sunucuyu kullanmak
durumunda olmalardr.
Boylece kullanclar Web tarayclarn acp, bir IP adresi yerine ibm.com gibi aklda kolay kalan bir
isim yazp web sitesine baglanabilirler.
Yukardaki komuta gore ontanml router adresi 192.168.1.80dir. Sisteminizde ayarlar yaplms tum
routerlarla ilgili bilgileri edinmek icin route -n komutunu verebilirsiniz. Hedef adresi olan 0.0.0.0 yol
ontanml yoldur.
16.9 Ev odevi
Su ana dek Linux ag islemlerine dair en temel kavramlardan bahsettik. Maalesef uygun IP adresini secmek,
ag maskeleri, broadcast adresleri, vs. gibi her konuya deginecek yerimiz ve vaktimiz yok. Bununla birlikte
Linux ve ag islemleri hakknda en cok ve en detayl dokumantasyon uretilmis konudur. Buradaki temel
bilgileri kavradktan Linuxdoc.org sitesindeki Guides ksmnda yer alan Linux Network Administrator
Guiden ozellikle 2 ile 6 arasndaki bolumlerini okumanz sizin icin cok faydal olacaktr!
33
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Ornek bir /etc/services dosyasnda bizi ilgilendiren satrlara bir goz atalm:
tcpmux echo echo discard discard 1/tcp 7/tcp 7/udp 9/tcp 9/udp # TCP port service multiplexer
Genellikle /etc/services halihazrda faydal tum servis isimlerini ve port numaralar bilgilerini icerir.
Eger kendi servislerinizi ve port numaralarnz ekleyecekseniz oncelikle atamalar yaplms port nu-
maralarn bilmeniz gerekir.
Servisler inetd.conf icinde port numaras ile degil servis ismi ile anldklar icin bunlarn onceden
/etc/services dosyasnda tanmlanms olmas gerekir.
Ornek bir /etc/inetd.conf dosyasnda bizi ilgilendiren satrlara bir goz atalm (orn. telnet ve ftp):
Her iki servis icin de kullanlan TCP protokoludur, servislerle ilgili yazlmlar (in.telnetd veya in.ftpd)
root kullancs olarak calstrlacaktr. /etc/inetd.conf dosyasndaki bilgi giris alanlarnn detayl ackla-
mas icin inetd(8) man sayfasna bakabilirsiniz.
# /etc/rc.d/init.d/inet stop
Stopping INET services: # /etc/rc.d/init.d/inet start Starting INET services:
[ OK ]
[ OK ]
[ [ OK OK ] ]
34
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# killall inetd
Baslatmak icin komut satrndan komutu yazmanz yeterli olacaktr. Otomatik olarak arkaplanda
calsmaya baslar:
# /usr/sbin/inetd
Bunlarn dsnda bir de inetdyi durdurmadan ayar dosyasn yeniden okumasn saglamann kestirme
bir yolu vardr: prosese HUP sinyalini gondermek:
Bu asamada sisteminize telnet ya da ftp programlar ile baglanamamanz gerekiyor cunku telnet ve ftp
servisleri iptal edilmis durumda. Emin olmak icin telnet localhost komutunu deneyin. (Eger bu sisteme
telnet ya da ftp ile erismeniz gerekiyorsa yapmanz gereken az once # ile iptal ettiginiz satrlarn basndaki
# karakterini kaldrmak ve inetdyi yeniden aktive etmektir):
# telnet localhost
telnet: Unable to connect to remote host: Connection refused
telnet ile baglanma talebi gordugunuz gibi tcpd tarafndan log dosyasna kaydedilmistir ve buradan
da tcpd yazlmnn calsmakta oldugunu anlayabiliriz. tcpd surekli bir kayt hizmeti sundugundan tek
tek servislerin log tutma isi ile ugrasmasna gerek kalmams olur. Bu bakmdan tcpdnin yaptg is,
baglantlar yakalayp ilgili servisleri baslatan inetdnin yaptg ise benzer. Linuxun (UNIXin) basitligi
olaganustu degil mi?
35
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
/etc/hosts.deny dosyasnda eslesen bir kullanc bulundugunda erisim reddedilir. Eger bir eslesme
bulunmaz ise izin verilir.
Ornegin sadece kendi makinamzdaki kullanclara izin vermek istersek /etc/hosts.deny dosyasnda
bir erisim politikas olustururuz (kaynag localhost olanlar haricindeki tum baglantlar reddet) :
in.telnetd: ALL EXCEPT LOCAL
Al sana! Reddedildin! (Reddedilmenin basar anlamna geldigi ender anlardan biridir, tadn ckarn
;-) Ag icindeki kullanclara izin vermek icin istisnai durumu /etc/hosts.allow dosyas icine yazmamz
yeterlidir:
in.telnetd: .yourdomain.com
Bu noktada artk sisteme telnet ile yeniden girebilir hale geldik. Simdiyi kadar anlattklarmz tcp -
wrappers yazlmnn sadece birkac yuzeysel ozelligine isaret ediyordu. tcp wrappers ile ilgili cok daha
detayl bilgi mevcuttur ve bunlar tcpd(8) ile hosts access(5) man sayfalarnda bulabilirsiniz.
defaults {
Yukarda gordugunuz son satr xinetdye detayl ayarlar /etc/xinetd.d dizinindeki dosya parcackla-
rndan okumasn soyler. rectory. telnet ile ilgili bolume bakalm:
# cat /etc/xinetd.d/telnet
service telnet {
log_on_failure += USERID }
36
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Gordugunuz gibi xinetdyi ayarlamak zor degildir ve inetdye kyasla daha kolaydr. xinetd ile ilgili
detayl bilgilere xinetd(8), xinetd.conf(5) ve xinetd.log(5) man sayfalarndan erisebilirsiniz. Web uzerinde
de inetd, tcp wrappers ve xinetd ile ilgili bir hayli detayl bilgi bulabilirsiniz. Lutfen bu dokumann
Kaynaklar ksmnda verilen kaynaklar incelemeyi ihmal etmeyin.
# cd
# pwd
/root
# chmod 700 .
umaskla ve ayarlanmas ile ilgili detayl bilgi icin umask(2) ve bash(1) man sayfalarna basvurabilir-
siniz. umask(2) man sayfasnn ayn isimli C fonksiyonundan bahsettigine dikkat edin, bu sizi sasrtmasn
cunku anlatlan bilgiler dogrudan bash icinde kullanlan umask komutu icin de gecerlidir. Ayrca LPI 101
Bolum 3te da bununla ilgili detaylar vardr.
37
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# cd /usr
# find . -type f -perm +6000 -xdev -exec ls {} \;
Karsmza ckan listede dikkatle incelenmesi gereken bir aday var : lppasswd isimli dosya CUPS
yazdrma sisteminin bir parcasdr. Kendi sisteminizde yazc servisi sunmuyorsanz bu programa da ihti-
yacnz yoktur. lpppasswd programnda herhangi bir hata ya da ack olmayabilir fakat kullanmadgmz bir
program sistemde bulundurarak neden risk alalm ki? Benzer sekilde kullanmadgnz tum servisleri iptal
etmekte fayda vardr. Ihtiyacnz oldugu anda nasl olsa kolayca bunlar yeniden etkin hale getirebilirsiniz.
# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 3071
virtual memory (kbytes, -v) unlimited
Bu limitleri sistemin guvenligini artracak ve kullanclar rahatsz etmeyecek sekilde ayarlamak cok
zor olabilir bu yuzden ulimit ile ayarlama yaparken cok dikkatli olmalsnz.
38
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# time bash
# ulimit -t 1
# while true; do true; done
Killed
real 0m28.941s
user 0m1.990s
sys 0m0.017s
Yukardaki ornekte user zaman art sys zaman proses tarafndan kullanlan toplam CPU za-
mann verir. bash prosesi 2 saniye isaretin gelince Linux cekirdegi 1 saniye limitinin gecildigini tespit
eder ve proses sonlandrlr. Harika degil mi?
Not: Bir saniyelik limit sadece bir ornekti. Sakn kullanclarnza boyle bir sey yapmayn! Birkac saatlik
limit bile sorun yaratabilir cunku X grafik sunucusu gercekten CPU zamann cok kullanr. Gercek bir
uygulama icin CPU zaman haricinde bir kaynag kstlamay dusunun.
Clobberd yazlm kullanc aktivitesini gozetler ve zaman, ag kullanm gibi degerleri olcer.
Idled yazlm cok uzun sure is yapmayan, bos duran kullanclar ya da uzun suredir sisteme bagl
olan kullanclar sistemden atabilir.
Ayn zamanda kullanclarn belli bir miktardan fazla login olmasn da engelleyebilir.
LPI 101 Bolum 4te dosya sistemi kotalar ile kstlama anlatlmstr.
39
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# /etc/init.d/sshd stop
* Stopping sshd... [ ok ]
Standart telnet istemcisine ek olarak sisteminizin acklgn test etmek icin faydalanabileceginiz
birkac becerikli yazlm daha vardr. netcat ve nmap isimli yazlmlar bunlar arasnda en meshur olan-
lardr. ncat bilgisayar aglarnn Isvicre Caks olarak bilinir, temel olarak yaptg ici ag baglantlar kurup
TCP ya da UDP protokollerini kullanarak veri okuyup yazmaktr. nmap ise ag kesfetmek veya guvenligi
denetlemek icin kullanlan bir aractr. Esas olarak nmap belli bir adresteki (ya da adreslerdeki) bilgisa-
yarlarn uzerindeki ack portlar tarayp bunlar tespit etmeye yarar. Bu faydal programlarla ilgili web
adreslerini en sondaki Kaynaklar bolumunde bulabilirsiniz.
Password:
Login incorrect
==== System is currently undergoing maintenance until 2:00.
Please come back later. ===
Bakm islemleriniz bitince soz konusu dosyay silmeyi sakn unutmayn, aksi takdirde hickimse sisteme
giremez. (Yok hayr, ben boyle bir dalgnlk sonucu insanlara sac bas yoldurtmadm, kesinlikle bunu yapan
ben degildim ;-)
40
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# iptables -L
Chain INPUT (policy ACCEPT) target prot opt source
Chain FORWARD (policy ACCEPT) target prot opt source
Chain OUTPUT (policy ACCEPT) target prot opt source
destination
destination
destination
Bu ornekte gordugumuz sonuna kadar ack bir sistedir, herhangi bir routing ve firewall islevi yoktur.
# less /var/log/messages
Feb 17 21:21:38 [kernel] Vendor: SONY Model: CD-RW CRX140E Rev: 1.0n
Feb 17 21:21:39 [kernel] eth0: generic NE2100 found at 0xe800,
Version 0x031243, DMA 3 (autodetected), IRQ 11 (autodetected).
Feb 17 21:21:39 [kernel] ne.c:v1.10 9/23/94 Donald Becker (becker@scyld.com)
Feb 17 21:22:11 [kernel] NVRM: AGPGART: VIA MVP3 chipset Feb 17 21:22:11
[kernel] NVRM: AGPGART: allocated 16 pages Feb 17 22:20:05 [PAM_pwdb]
authentication failure; (uid=1000) -> root for su service
Feb 17 22:20:06 [su] pam_authenticate: Authentication failure
Feb 17 22:20:06 [su] - pts/3 chouser-root
Bu mesajlarn tamamnn anlamn kavrayacak hale gelmeniz biraz vakit alabilir ancak en onemli-
leri kendilerini zaten belli eder. Ornegin yukardaki log dosyasnn sonuna dogru chouser isimli bir
kullancnn su komutu ile root haklarna erismeye calstgn ve basarsz oldugunu goruyoruz.
41
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
oldugunu belirtirseniz bu yazlmlar sizi degisiklikler konusunda hzlca uyarrlar: baz hassas dosyalardaki
kucuk ve onemsiz gibi gorunen degisiklikler sisteme gizlice girilip dosyalara mudahale edildigine isaret
edebilir. Tripwire bu tur yazlmlardan en meshur olandr (baglant icin klavuzun sonundaki kaynaklar
ksmna bakn). Bir kere kurduktan sonra tripwire ayar dosyasn kendi sisteminize ve ihtiyaclarnza gore
ayarlamanz ve yazlm duzenli olarak calstrp (genellikle gunde bir kez) sistemi olas supheli dosya
degisimlerine kars test etmeniz gerekir.
42
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
bilgileri kullanmayn. Parolanzda mumkunse ayn zamanda hem harfler hem rakamlar hem de noktalama
isaretleri bulunsun.
$ /usr/sbin/lpd -help
--X option form illegal
usage: lpd [-FV] [-D dbg] [-L log]
Options
-D dbg - set debug level and flags
Example: -D10,remote=5
set debug level to 10, remote flag = 5
-F - run in foreground, log to STDERR
Example: -D10,remote=5
-L logfile - append log information to logfile
-V - show version info
Daemon kurulduguna gore simdi her seferinde otomatik olarak baslatlacagndan emin olmalsnz.
Dagtmnzn LPRng paketi bunun sizin icin coktan ayarlams olabilir ancak eger yapmad ise LPI 101
4. bolum size runlevellar ve lpd gibi daemon yazlmlarnn otomatik olarak baslatlmas konusunda size
bilgi verecektir.
$ more /etc/printcap
lp|Generic dot-matrix printer entry:\
:lp=/dev/lp0:\
:sd=/var/spool/lpd/lp:\
:pl#66:\
43
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
:pw#80:\
:pc#150:\
:mx#0:\
:sh:
LPRng printcapi kontrol edebilmeniz icin faydal bir arac icerir. Ayn zamanda, eger siz unutursanz
spool dizinini de ayarlar:
# checkpc -f
Son olarak lpdyi tekrar baslatn. Ne zaman printcapi degistirseniz degisikliklerin gecerli olmas icin
bunu yapmanz gerekir. lpd yerine lprng kullanmanz gerekebilir:
# /etc/init.d/lprng restart
Eski Berkeley yazdrma sistemi checkpc aracn icermez bu yuzden birden fazla yazcnz var ise bunlara
bastrlacak belgeler yollayarak printcap ve spool dizinlerinin dogru olup olmadgn kontrol etmeniz
gerekir.
Eger calst ise ekranda herhangi bir mesaj gormezsiniz fakat yazcnz calsmaya baslar ve dos-
yanzn kagda basldgn gorebilirsiniz. Eger cok duzgun gorunmuyorsa uzulmeyin biraz sonra gerekli
filtreleri nasl kuracagmz ve her turlu format nasl yazcya gonderebilecegimizi inceleyecegiz. Yazc
kuyrugundaki yazdrma islerinin listesini lpq komutu ile ile ogrenebilirsiniz. -P secenegi hangi kuyrugun
gosterilecegini belirler eger bunu es gecerseniz ontanml kuyruk listelenecektir:
$ lpq -Plp
Printer: lp@localhost Generic dot-matrix printer entry
Queue: 1 printable job
Server: pid 1671 active
Unspooler: pid 1672 active
Rank Owner/ID Class Job Files Size Time
active chouser@localhost+670 A 670 sample.txt 8 21:57:30
Eger bir yazdrma isini iptal etmek istiyorsanz lprm komutunu kullanmalsnz. Bu komut bir yazdrma
isi cok uzun suruyorsa ya da bir kullanc yanlslkla ayn belgeyi bir kereden daha cok gondermisse ise
yarar. Tek yapmanz gereken yukardaki listeden job idsini tespit etmek:
44
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
$ lprm chouser@localhost+670
Printer lp@localhost:
checking perms chouser@localhost+670
dequeued chouser@localhost+670
lpc ile yazc kuyrugunda pek cok sey yapabilirsiniz. Detaylar icin lpc man sayfasna baknz.
Burada ag uzerinde bulunan ve kendisine bir yazc bagl olan makinann ismi farawaydir ve bu
makinadaki yazcnn ismi de lpdir. spool dizini /var/spool/lpd/farawaylpdir ve uzaktaki makinann
spool dizinine gonderilmek uzere srada bekleyen yazdrma isleri bu dizinde barndrlacaklardr. Tabii bu
spool dizinini uygun izinleri de vererek yaratmanz gerektigini unutmayn:
# mkdir -p /var/spool/lpd/farawaylp
# chown lp /var/spool/lpd/farawaylp
# chmod 700 /var/spool/lpd/farawaylp
# checkpc -f
# /etc/init.d/lprng restart
Yerel olarak uzaktaki yazcya farawaylp ismini verdigimize gore ona yonlendirilmis isleri de su sekilde
goruntuleyebiliriz:
Buradaki yeni anahtar ifdir yani girdi filtresi (input filter). Bunu smbprint betigine yonlendirmek
yazma isinin lp cihaz yerine uzaktaki bir Windows sunucusuna yonlenmesine yol acacaktr. Bu durumda
yine de yazdrma daemonn kilit islemleri icin kullanacag bir cihaz listelemeliyiz: /dev/null. Ancak tabii
ki hicbir yazdrma isi bu cihaza gonderilmeyecektir. Spool dizinini yaratmay unutmayn!
# mkdir -p /var/spool/lpd/smb
# chown lp /var/spool/lpd/smb
# chmod 700 /var/spool/lpd/smb
# checkpc -f
# /etc/init.d/lprng restart
Favori metin editorunuz ile ismi yukardaki gibi belirlenmis spool dizininde bir .config dosyas olustu-
run (ornegimizde: /var/spool/lpd/smb/.config):
45
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
server="WindowsServerName"
service="PrinterName"
password= " "
user=" "
Bu degerleri Windows calstran bilgisayar ve oradaki yazcy gosterecek sekilde ayarlayn, ve islem
tamam:
smbprint betigi genellikle Samba ile birlikte gelir ancak her dagtmda bulunmayabilir.Eger bunu
sisteminizde bulamazsanz Samba HOWTO belgesinde bulabilirsiniz.
19.7 Magicfilter
Simdiye dek sadece metin dosyalar ile ilgilendik ve bu da cok heyecan verisi saylmaz. Genellikle eli-
nizin altndaki herhangi bir yazc tek bir grafik formatn basabilecek kapasitededir ancak baslmasn
arzuladgmz pek cok farkl format mevcuttur: PostScript, gif, jpeg ve digerleri. Magicfilter isimli prog-
ram bir tur girdi filtresi olarak calsr tpk smbprintin yaptg gibi. Dosya formatlarn donusturmez
sadece baslacak belgenin tipinin belirlenmesini saglayacak bir altyap sunar ve sonra gerekli donusturme
yazlmnn calstrlmasn saglar. Donusturme yazlmlar ayrca kurulmaldr. Bunlardan en onemlisi ise
Ghostscript yazlmdr; bu yazlm Postscript formatndaki dosyalar yazcnn yerel formatna donusture-
bilir.
/usr/share/magicfilter icinde duzinelerce farkl yazc icin ayarlar mevcuttur, yazcnz icin dogru olan
sectiginizden emin olun. Bunlardan her biri bir metin dosyasdr ve yazcnn tam ismi en tepededir, bu
sekilde hangi dosyaya ihtiyacnz oldugunu tespit edebilirsiniz. Ayrca eklenmis olan bir gqfilter secenegi
de uzaktaki bir istemciden gelen belgelerin yine filtreye yonlendirilmesini saglar. Bu sadece LPRng ile
calsr. Daha once /var/spool/lpd/lp yazc spool dizini daha once ayarlanms oldugu icin tek yaplmas
gereken printcap sozdizimini kontrol etmek ve sunucuyu yeniden baslatmak:
# checkpc -f
# /etc/init.d/lprng restart
Artk Postscript dosyalar da dahil olmak uzere cok cesitli belgeleri yazdrabilirsiniz. Baska bir deyisle
favori web taraycnzn menusundeki Print secenegi artk duzgun sekilde calsyor olmal.
46
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
19.10 Kaynaklar
xinetd anasayfasndan ayarlamalarla ilgil detayl bilgi edinebilirsiniz. Kendi servis isimleriniz ve port
numaralarnz /etc/services dosyasna eklerken onceden atamas yaplms olan portlar ve servislerle
caksmamalarna dikkat edin. netfilter anasayfas iptables ile ilgili detayl bilgi edinmek icin birincil kay-
naktr. Kendi kural setinizi kendi sisteminize gore hassas olarak kurabilecek kadar deneyim sahibi olana
dek gShield gibi hazr bir iptables betigini denemenizi tavsiye olunur.
Ilk akla gelen guvenlik araclar arasnda sunlar saylabilir: Tripwire en populer gizli giris tespit
araclarndandr.
Psionic Technologiesden gelen PortSentry ise hem tespit etme hem de onlemeye yoneliktir. (Linu-
xWorlddeki How to stop crackers with PortSentry baslkl makale bu yazlmla ilgili detayl bilgi verir)
Bunlara ek olarak Wietse Venemann TCP Wrappers yazlmna asina olmanz menfaatiniz icabdr,
bu yazlm sisteminizdeki baglantlar gozetlemenizi ve kontrol etmenizi saglar.
Agnz dibine dek ack m? Bu tip analizler icin su iki temel yazlmdan faydalanabilirsiniz: netcat
basit bir UNIX programdr ve her turlu ag baglantsn istediginiz TCP ya da UDP protokolu uzerinden
kurmanz saglar.
nmap ise ag kesfetmek ve guvenlik denetimi yapmak icin kullanlan bir aractr. nmap ack olan portlar
tarar.
Parola test etme yazlmlar sisteminizdeki parolalarn kalitesi konusunda size bilgi verir. Bu amacla
gelistirilmis en meshur yazlmlardan biri John the Ripperdr. Daha detayl bir test edici olarak SAINT
yazlmna goz atabilirsiniz.
19.11 Her sistem yoneticisinin duzenli olarak takip etmesi gereken en onemli
siteler:
CERT devlet tarafndan finanse edilen ve Carnegie Mellon University tarafndan isletilen bir merkezdir.
Ilgi odag Internet guvenlik problemleridir. SecurityFocus tarafndan barndrlan BugTraq da guvenlikle
ilgili problemlerin duzenli olarak duyuruldugu en onemli listelerden biridir. Ozel olarak guvenlik yonetimi
ile ilgilenmiyorsanz bile bulisteye uye olmanz menfaatiniz icabdr. Yaplan duyurular arasnda sizin
sisteminiz ile baglantl olanlar ilginizi cekebilir.
Linux guvenligi ile ilgili tavsiye edebilecek diger sitelere gelince: Linux Security HOWTO, OReillys
Security Pageve tabii ki developerWorksdan Security Zone.
Yazdrma konusu ile ilgili olarak LPRng anasayfas pekcok bilgi icerir. Tabii Printing HOWTO da
degerli bir belgedir. Bu konu ile ilgili bir baska onemli kaynak da LinuxPrinting.org sitesidir. Spesifik
yazclarla ilgili olarak Serial HOWTO belgesine dansabilirsiniz. USB klavuzu da USB yazclarla ilgili
bilgi verir.
Heterojen aglarda Samba buyuk bir yardmcdr. Bu tur bir ortamda yazc servisleri ile ugrasacaksanz
Samba ana sayfasn ve Samba HOWTO belgesini de okumakta fayda vardr. Burada iki filtreleme prog-
ram ele alnmstr:
Magicfilter ve Apsfilter. Unutmayn ki bu programlarn bir donusturucuye ihtiyac vardr (tercihen
Ghostscript).
47
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
yor. Sshn, guvenli olmayan diger araclardan fark, istemci ile sunucu arasndaki tum iletisimi guclu bir
sifreleme mekanizmasyla sifrelemesidir. Boylece istemci ve sunucu arasndaki iletisimi goruntulemek cok
zor (hatta imkansz) hale geliyor. Bu da, guvenli kabuk ismini haketmis olmasn saglyor. Ssh cok ozel-
likli bir guvenlik yapsna sahiptir, bir sekilde aga girilse ve sunucu-istemci iletisimi goruntulense bile
parola dogrulama icin sifrelemenin yannda baz anahtar degisimi stratejileriyle, parolann calnmasn
imkansz klar. Internetin bu kadar populer oldugu gunumuzde, Linux sistemlerin kullanldg aglarda,
guvenligi ustu duzeye ckarmak icin ssh uygun bir aractr. Guvenligin onemini kavrams sistem yoneti-
cileri, aglarnda telnet ve rsh kullanlmasn uygun bulmaz, hatta bazen yasaklarlar. Cunku ssh ayn isi
yapabilen ve cok daha guvenli bir alternatiftir.
$ ssh knoppix@remotebox
yazarsnz. Burada remotebox makinesine knoppix kullancsyla baglanma komutu vermis olduk. Tel-
netteki gibi bir parola sorulacak, parolay girdikten sonrada uzaktaki makinede sizin icin yeni bir oturum
aclms olacak.
# /etc/init.d/sshd start
veya
# /etc/rc.d/init.d/sshd start
Eger gerekirse, sshd yaplansnz /etc/ssh/sshd config dosyas uzerinden degistirebilirsiniz. Daha fazla
bilgi almak ve diger tercihleri gormek icin sshd klavuz sayfasn kullanabilirsiniz:
man sshd
Parola girme ve dogrulama isleminden sora kopyalama yaplacaktr. Tersi icinde, ornegin remotebox
makinesinin /tmp dizinindeki bar.txt dosyasn, yerel makinemde, halihazrda calstgm dizine kopyala-
mak istersem:
$ scp knoppix@remotebox:/tmp/bar.txt
yazarm.
48
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
20 NFS
20.1 NFSe giris
Ag Dosya Sistemi (The Network File System - NFS), yerel bir agda, birbirine bagl UNIX ve Linux
sistemlerin, aralarnda dosya paylasmn saglayan bir teknolojidir. NFS, Linux ve UNIX dunyasnda
uzun suredir bilinen ve yaygn olarak kullanlan bir sistemdir. NFSin temel kullanm, kullanclarn, ag
uzerinde herhangi bir makinede oturum actklarnda kendi home dizinlerine ulasmalarn saglamaktr.
NFS sayesinde uzak makinelerin dosya sistemi ve agac yaplarnn, yerel olarak oturum aclan makineye
baglanmas (mount) ve tam uyumlulugu saglanabiliyor. Bu yeterlilik ve basitlik, NFSi, Linux dunyasnda
en populer ve kullansl ag dosya paylasm sistemi haline getirmistir.
21 NFS kurulumu
NFS 3 kurulumunun ilk adm bir NFS sunucusu kurmaktr. Sunucu olarak secilen makinenin cekirdeginde
NFS sunucu destegini aktif hale getirmek gerekir. NFS 3 icin 2.2.18 ve uzeri bir cekirdege (2.4 ve uzeri
onerilir) sahip olmalsnz. Eger cekirdeginizi kendiniz derliyorsanz, /usr/src/linux dizinine gidip
49
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# make menuconfig
komutunu calstrmalsnz. Burada File systems section secenegini, ardndan da Network File
Systems secenegini sectikten sonra, asagdaki tercihleri aktif hale getirin:
/etc/exports dosyas
/etc/exports dosyasnn yapsn anlamann en iyi yolu bir ornegini incelemektir. Bizim NFS sunucu-
sundaki /etc/exports dosyasnn icerigi soyle:
Goruldugu gibi dosyann ilk satr bir acklama. Ikinci satrda kok (/) dizinin ihrac edildigi be-
lirtiliyor. Sunu unutmayn ki, kok dizin ihrac edildikten sonra ayn dosya sisteminde ki bir baska dizin
ihrac edilemez. Ornegin NFS sunucumun /mnt/cdrom klasorune baglanms bir CD surucu varsa, bu
surucu /etc/exportsta ayrca baglanmadg surece ulaslamazdr. Bunun icin dosyann ucuncu satrna
bakalm. Burada kok dizinden baska bir dosya sistemine ait olan ve sistemin yedeginin tutuldugu /mnt/-
backup dizini ihrac ediliyor. Her satrdaki 192.168.1.9(rw,no root squash) bilgisi de, nfsdye, sadece
192.168.1.9 IP adresli istemcilerin, ihrac edilen dizinlere ulasabilecegini ve bu istemcilerin okuyabildikleri
gibi yazma haklarna da sahip olacaklarn soyler. Ayrca bir NFS istemcisinde super kullanc hesabyla
dosya sistemine root haklaryla ulasmasna izin veriliyor.
50
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
Bu /etc/exports orneginde, /24 maskesi kullanlarak, verilen IP adresindeki son 8 bit maskeleniyor.
Burada IP adresi ifadesiyle ( arasnda bosluk olmamasna dikkat edin. Bu araya koyacagnz bir bosluk
karakteri dosyann yanls yorumlanmasna sebep olur. rw ve no root squash dsnda da baz izin
tercihleri vardr. Bunun icin man exports yazarak tum tercihleri gorebilirsiniz.
veya
/etc/rc.d/init.d/nfs start
NFS calstrldktan sonra, rpcinfo yazdgnzda asagdakine benzer bir ckt almanz gerekiyor.
# rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 32768 status
391002 2 tcp 32769 sgi_fam
100011 1 udp 792 rquotad
100011 2 udp 792 rquotad
100011 1 tcp 795 rquotad
100011 2 tcp 795 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100021 1 udp 32770 nlockmgr
100021 3 udp 32770 nlockmgr
100021 4 udp 32770 nlockmgr
100005 1 udp 32771 mountd
100005 1 tcp 32770 mountd
100005 2 udp 32771 mountd
100005 2 tcp 32770 mountd
100005 3 udp 32771 mountd
100005 3 tcp 32770 mountd
100009 1 udp 821 yppasswdd
100004 2 udp 734 ypserv
100004 1 udp 734 ypserv
100004 2 tcp 737 ypserv
100004 1 tcp 737 ypserv
yazmanz gerekir. Boylece NFS sunucunuz yeniden duzenlenmis ve calsr hale gelmistir. Artk NFS
istemcilerini yaplandrarak, ihrac ettiginiz dosya sistemlerini baglamalarn saglayabiliriz.
51
Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Bolumu
# rpcinfo
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 32768 status
Bu kontrolu uzaktaki bir sistemden yapmak isterseniz, komutu rpcinfo -p makine adi parametreleriyle
calstrmak gerekir:
# rpcinfo -p sidekick
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 32768 status
/ 192.168.1.1/24(rw,no_root_squash)
Boylece, 192.168.1 agndaki tum makinelere baglant izni verilmis. Simdi sidekick makinesine root
olarak girin ve asagdakileri yazn:
Inverntor makinesinin kok dizini, sidekick makinesinde /mnt/nfs dizinine baglanms oldu.
cd /mnt/nfs
yazarak, inventor makinesinin dizinlerinde gezebilir ve dosyalarna bakabilirsiniz. Sunu tekrar hatrla-
talm ki, inventor makinesinin kok (/) dizini baska bir dosya sisteminde olsayd, /mnt/nfs/home dizini
hicbirsey icermeyecekti. Bu durumda, buradaki bilgiye ulasmak icin yeni bir baglama islemine (ayn
zamanda inventor makinesinin /etc/exports dosyasnda yeni bir satra) ihtiyac duyacaktk.
yazarsnz. Boylece inventorun /usr dizin agac, sizin onceden varolan /mnt/usr dizininize baglanms
oldu. Bunun icin /etc/exports dosyasnda bir degisiklige ihtiyac olmadgna dikkat edin. Kok dizininin
ihrac edilmesi, onun altndaki dizinlere baglama islemi yaplmasn ozgur brakmst.
52