PCTurk | Aşk Sevgi Resimleri , Mektupları , silkroad , msn avatarlar , komik
+ PCTurk | Aşk Sevgi Resimleri , Mektupları , silkroad , msn avatarlar , komik » -Bilgi Paylaşım- » İşletim Sistemleri » Linux İsletim SistemiKonu:
 Linux.. baştan sona burda
.
Kullanıcı Adı:
Şifre:
Linux.. baştan sona burda



Sayfa: 1 [2] 3
  Yazdır  
Gönderen Konu: Linux.. baştan sona burda
« Yanıtla #10 : 22 Haziran 2006, 16:06:14 »
[DooMsDaY]
Administrator
*



Rep: 65535
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 2865
288317.00 Forum Lirası

Extra Listesi
Üyeye para gönder

Üyelik Bilgileri WWW


7.1 SED (Stream editor)

Metin dosyaları üzerinde sürekli işlem yapanlar için sed ve vi hemen imdada yetişir. Bu iki programın yapabildiklerini etkileşimli olarak bir metin editörü üzerinden gerçekleştirebilmek de mümkündür. sed ve vi tam anlamıyla zaman kaybını önleyen kullanıcı dostu iki uygulamadır. Yapısal olarak diğer programlama dillerinden biraz farklı olduklarından öğrenmesi biraz zaman alır. Buna rağmen eğer metin editörlüğü işinizin bir parçası ise sed ve vi'ı öğrenip bunlardan verimli bir şekilde yararlanmanız uygun olacaktır.

Sed ve Özellikleri

Sed bir dosyadan veya standart girdiden(klavyeden) bilgi okur ve standart çıktıya (ekrana) okuduğu bilgileri kullanıcının belirlediği düzene sokarak yazar. Bu veriyi de kullanıcı genellikle bir dosyaya yerleştirir.

Sed komut satırında iken veya bir kabuk programı içinden kullanılabilir.

Örnekler

Sed kullanırken en çok başvuracağınız işleç `s' işlecidir. Bir karakteri veya karakter kümesini başka bir diziye çevirmeye yarar. Buna basit bir örnek :





sed 's/hapisane/hapishane/g' dosya

Komutun sonundaki `g' işleci, sed'e dosyanın tamamını araştırmasını söyler. Eğer bunu kaldırırsanız, sed her satırın başında bulduğu ilk değiştirmeyi yapacak ve satırın geri kalanına dokunmayacaktır.

Aşağıdaki karakterler sed tarafından kullanılan özel karakterler kapsamına girer. Bu karakterlerin herbirisinin anlamı olduğundan dikkatli kullanılmaları gerekir.





.*[]^$\&

Yukarıdaki karakterleri gözönüne almadan yapılan aşağıdaki gibi bir kullanım hataya yol açar.





sed 's/[J.S. Bach]/[Bach, J.S]/' dosya

Bunun yerine her özel karakterin başına `\' karakteri getirilerek özel anlamlarının yitirilmesi sağlanabilir (saklama işlemi). Yukarıda çalışmayan örneği yeniden düzenleyerek yazalım:





sed 's/\[J\.S\. Bach\]/[Bach, J.S ]/' dosya

Aynı anda birden çok değiştirme yapabilmek için ise her argüman için -e kullanılır.





sed -e 's/computer/bilgisayar/g' -e 's/server/sunucu/g' dosya

İçinde '/' karakteri olan bir diziyi değiştirmek için ne yapmalı? Bu, özel karakter sınıfına girdiği için karakterin özel anlamını yitirmesi sağlanır.





sed 's/\/usr\/bin/\/bin/g' dosya

Düzgün Deyimler (Regular Expressions)

Sed, UNIX üzerinde metin işleyen birçok program gibi düzgün deyimlerden yararlanır. Aşağıdaki bu duruma birkaç örnekle yer veriliyor. '^' karakteri satır başlangıcını gösterir. Bu komut,





sed 's/^Pts /Pazartesi/' dosya

bir satırın başında ``Pts'' varsa bunu ``Pazartesi'' haline getirir. Dikkat ederseniz komut dahilinde `g' işleci kullanılmamıştır. Çünkü her satırda sadece bir satır başı olabilir.

$ karakteri satır sonunu belirtir. Aşağıdaki örnekte,





sed 's/ $//' dosya

Sed komutu satır sonundaki tüm boşluk karakterlerini siler. Her satır sonuna ``SATIR_SONU'' karakter kümesini getirmek için





sed 's/$/SATIR_SONU/' dosya

yazılabilir. Boş bir satırı bulmak için satır başı ve satır sonu belirteçleri birlikte kullanılır.





sed 's/^$/bu daha once bos bir satirdi/' dosya

`.' (nokta) karakteri herhangi bir karakter anlamına gelir. Örneğin üzerinde işlem yapacağımız dosyada bütün satırlardaki ilk iki karakteri silmek için:





sed 's/^..//' dosya

Köşeli parantezler birden fazla sayıda karakter içinde seçim yapar.





sed 's/[Oo]pen[Ww]in/openwin/g' dosya

Alfabedeki iki karakterin arasındaki tüm karakterleri seçmek için köşeli parantezlerin içinde `-' karakteri kullanılabilir. Bu karakter, sağındaki ve solundaki de dahil olmak üzere aradaki tüm harfleri seçer. Örnek dosyadaki tüm büyük harfleri silelim.





sed 's/[A-Z]//g' dosya

Bir karakter kümesinin dışında kalan karakterleri seçmek için ise `^' kullanılır. Örnek dosyada, rakamların ve küçük harflerin dışındaki tüm harfleri silmek istiyoruz.





sed 's/[^1-9a-z]//g' dosya

'*' karakteri, kendisinden bir önce gelen karakterin veya küme içine alınmış karakter gruplarının sıfır veya daha fazla tekrarı anlamına gelir.





sed 's/^ *//' dosya

komutu her satır başındaki boşluk karakterlerini siler. Aşağıdaki sed komutu her satırdaki son kelimeyi (boşluk karakterlerinden oluşmayan karakterler grubunu) siler.





sed 's/[^ ]*$//' dosya

unutulmaması gereken bir nokta, `*' karakteri önceki grubun sıfır kere tekrarını da gözönüne alır, bu durumda aşağıdaki satırda görülen ve bir tamsayı değerini ``TAMSAYI'' sözcüğü haline getirmek için kullanılan komut Linux tarafından yanlış işletilecektir.





sed 's/ [0-9]* / TAMSAYI /g' dosya

Bu satır aynı zamanda her boşluk karakterini ``TAMSAYI'' ya çevirir. Bunu engellemek için, en azından bir haneyi arama kapsamına sokmak gerekir:





sed 's/ [0-9][0-9]* / TAMSAYI /g' dosya

`.* harf kombinasyonu herhangi bir sayıda karakter grubu anlamındadır. Aşağıdaki örnekte, ``ku'' ve ``ik'' arasında ne olursa olsun bulunan satırı değiştirecek ve bunların yerine ``kuru erik'' koyacaktır.





sed 's/ku.*ik/kuru erik/g' dosya

Buraya kadarki bölümde eşleştirdiğimiz harf veya harf gruplarını ya başka bir forma soktuk ya da tamamen sildik. Ancak sed'in kelime işleme kapasitesi sadece yaptıklarımızla sınırlı değildir. `\(' ve `\)' operatörleri yardımıyla eşleştirildiği anda hafızaya kaydedilen kelime grupları daha sonra tekrar çağırılabilir. Parantezler özel anlamlı karakterlerin anlamlarını yitirmesini sağlamak amacıyla daha önceki kullanıma uygun konulmuşlardır. İlk kullanılan `\(\)' operatörü `\1' adlı alana, ikinci kullanılan `\(\)' operatörü `\2' adlı alana eşleştirilir (kayıt edilir). Aşağıdaki sed komutu,





sed 's/^\([A-Za-z][A-Za-z]*\) \([A-Za-z][A-Za-z]*\)/\2 \1/' dosya

bir dosyadaki ``isim soyisim'' sırasını ``soyisim isim'' sırasına çevirmekte kullanılabilir. Örnek olarak içeriği aşağıdaki gibi olan bir dosya üzerinde bu komut çalıştırılırsa

Mehmet Kırk
Biray Çift
Gürkan Ballı

ekranda aşağıdaki çıktı görünür:

Kırk Mehmet
Çift Biray
Ballı Gürkan

Bazı durumlarda tüm dosya üzerinde değil de bazı özellikleri sağlayan satırlar üzerinde işlem yapmak isteyebilirsiniz. Bunun için 'adresleme' yapmanız gerekir. Adresleme işlemi, `s işlecinden hemen önce yapılır. Bu komut ile dosyanın sadece 1 ve 20. satırları arasında işlem yapılacaktır.





sed '1,20s/Karadeniz/Akdeniz/g' dosya

``Makina'' kelimesiyle başlayan tüm satırlardaki ``Endüstri'' kelimesi yerine ``Elektronik'' kelimesini yerleştirelim.





sed '/^Makina/s/Maden /Elektronik /g' dosya

``Makina'' kelimesiyle başlamayan tüm satırlara benzer işlemi uygulayalım. `!' karakterinin yerine dikkat edin.





sed '/^Makina/!s/Maden /Elektronik /g' dosya

Sed Kaynak Dosyası

Eğer sed kaynak satırınız bir iki satıra sığmayacak kadar büyük ise komutları tek dosya altında toplayabilirsiniz. Bu örnekte degistir.sed isimli dosyaya üç satırlık sed komutu yazalım.





s/tiren/tren/gs/Pazar/Pazartesi/gs/1996/1997/g

Ardından sed komutunu -f parametresiyle çalıştıralım.





sed -f degistir.sed dosya

Bunların yerine kendi kendine çalışan bir sed programı yazmaya ne dersiniz ?





#!/usr/bin/sed -f# degistir.sed dosyasis/tiren/tren/gs/Pazar/Pazartesi/gs/1996/1997/g

Çalıştırmak için dosya izni verdikten sonra





chmod u+x degistir.sed

Logged

Rock & Metal Müzik: Linkleri Sadece Üyelerimiz Görebilir.  Üye Ol veya Giriş Yap
http://www.foreverrock.net
« Yanıtla #11 : 22 Haziran 2006, 16:06:40 »
[DooMsDaY]
Administrator
*



Rep: 65535
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 2865
288317.00 Forum Lirası

Extra Listesi
Üyeye para gönder

Üyelik Bilgileri WWW

Komut satırı üzerinden rahatlıkla çalıştırabiliriz





$ degistir.sed dosya

7.2 vi Editörü

Bir linux sistemde her kullanıcının zevkine hitap eden çeşitli metin editörler vardır. Bunların arasında en çok kullanılan ve standart olan ed ve vi, UNIX sistemler için özel olarak tasarlanmış editörlerdir. vi kadar çok kullanılmasa da ed, pico ve joe da büyük bir taraftar kitlesine sahiptir. vi ilk başta karmaşık görünse de hızı ve verimi ile her kullanıcının işini büyük ölçüde kolaylaştıracak bir editördür. En çok kullanılan komut takımlarını öğrendikten sonra vi ile aynı dili konuşuyor olduğunuzu göreceksiniz.

vi'a Başlangıç

PC editörlerin büyük çoğunluğunda klavye, editör komutlarını almak ve basılan tuşları ekrana göndermek için kullanılan iki gruba ayrılmıştır. Kullanıcı aynı anda hem komut işletip hem de yazı yazabilir. Bu tip editörler geniş bir klavye haritasına sahip oldukları için, örneğin fonksiyon tuşlarını veya klavyenin en sağındaki nümerik tuşları da kullanıyor olabilirler. vi' ın tasarım aşamasında bu durumdan kaçınılmış, standart dışı klavyesi olan bilgisayarların da var olabileceği düşünülerek klavye üzerinde kullanılması gereken tuşların sayısını mümkün olduğunca indirilmesine çalışılmıştır. Burada karşımıza vi editörünün çalışma aşamasında üç ayrı işlev geliyor. Birincisi, bilgisayara komutların girdisi sırasında kullanılan komut modu, ikincisi yazı yazarken kullanılan yazı modu ve satır modu.

Komut modunda klavye üzerinde görevi olan tüm tuşlar, bilgisayar komut vermek için kullanılıyor. Yazı modunda ise diğer editörlerdekine benzer şekilde yazı yazmak mümkün oluyor. Klavye modunu değiştirdiğinizde klavye tuşlarının işlevleri de hemen değişiyor. vi editörünü ilk çalıştırdığınız anda komut moduna girersiniz. Bu anda her tuşa ait bir komut çalıştırılmaya hazırdır (örneğin `j' bir karakter aşağı, `k' bir karakter yukarı gider). Bu anda kullanıcı yazı moduna geçmek isterse `i' tuşuna basabilir.

Yazı moduna iken klavyeden girilen her karakter ekranda görünür. Bundan sonrası daktilo kullanmaya benzer. Tekrar komut moduna geçmek için ESC tuşu yardımcı olur. Bir dosya yazarken veya düzeltmede bulunurken her iki yazım stili arasında sürekli gidip geldiğinizi farkedeksiniz.

Bunlara ek olarak dosya işlemleri veya eşleme (substitution) yaparken iki mod da kullanılmaz. Linux kullanıcısı vi üzerinde çalışırken en alt satırda vi mesajlarını görür ve gerektiği zaman satır modunda komutları girer. Satır moduna geçmek için `:' (iki nokta üstüste) karakteri kullanılır. Bu tuşa basıldığında ekranın en altında bir satır açılır ve vi sizden bir komut girmenizi bekler. vi komutunu yazdıp enter'a bastıktan sonra tekrar editör komut moduna geçersiniz.

Dosya İşlemleri

Sisteme girip ekrana vi telefon yazdığınızda aşağıdakine benzer bir metin üzerinde arama ve değiştirme görüntüsü monitörde belirecek ve program çalıştırılacaktır.





_~~~~~~~~~~~~ "telefon" [NEW FILE] 1 line, 1 char

vi'a ilk girdiğiniz anda komut modunda olursunuz. Yazı moduna geçmek için `i' veya `a' tuşuna basın. Bu andan itibaren zamanınızın büyük bir kısmını geçireceğiniz yazı moduna atlarsınız. Bıkana kadar yazıp önce ESC tuşuna, ardından iki kere `Z' tuşuna basın. Bu komut dizisi önce dosyayı kaydedecek, sonra da vi editörden çıkmanızı ve kabuğa dönmenizi sağlayacaktır.

vi' a yeni başlayanların yaptıkları en sık hatalardan biri yazı modundan komut moduna geçerken ESC tuşuna basmamalarıdır. `w' komutu `ZZ' komutuna benzer çalışır, hafızada halihazırda bulunan dosyayı, editörden çıkmadan diske kaydeder. Eğer isimsiz bir dosyada üzerinde çalışıyorsanız (örneğin vi telefon yerine sadece vi yazarak editöre girmişseniz) dosyayı sabit diske yazmak için `w' satır komutunu kullanmalısınız. Bunun için daha önce de belirtildiği gibi





:w telefon

yazıp satır moduna geçerek komutu girmelisiniz.

vi editörden çıkmak için `:q' yazın.

vi' da Yazma

Şimdi vi yardımıyla bir dosya üzerinde denemeler yapalım. Aşağıdaki satırları kabuk satırında iken yazın ve ENTER'a basın.





metu:~$ vi deneme

Ekran silinecek ve yukarıdakine benzer bir görüntüyle karşılaşacaksınız. Yazı moduna geçmek için `i' tuşuna basın. Hemen ardından bir zamanlar İnternet üzerinde görüp kaydettiğim birkaç satırı yazın.

Arada sırada kitapta bir şeyler ararken /'e basasım gelmiyor değil.
~
~
~
~
~
~


Ekranın en sonuna geldiğinizde vi, alttaki satır başına geçmeyecektir. Bunun için ENTER tuşuna basarak yazmaya devam edin.

Arada sırada kitapta bir şeyler ararken /'e basasım gelmiyor değil.
Fazla vi kullanmaktan tembelliğe alışmışız anlaşılan,
~
~
~
~
~


Satır sonuna geldiğiniz zaman komut satırına geçmek için ESC tuşuna basın. Klavyenin sağındaki yön tuşlarını kullanarak dosya içinde gezinebilirsiniz. vi'ın sevdiğim özelliklerinden birisi de kullanıcıyı 10 parmak yazmaya zorlamasıdır. Yön tuşlarının görevini h, j, k ve l tuşları da yapabilir, böylece kullanıcı sağ elini klavye üzerinde sürekli gezdirmek zorunda kalmaz.



j, imleci bir satır aşağı indir
k, imleci bir satır yukarı gönder
h, imleci bir karakter sola al
l, imleci bir karakter sağa al

Alternatif olarak ENTER tuşu komut modunda `j' tuşu yerine de kullanılabilir. Kursörü yön tuşları yardımıyla ``Fazla'' kelimesiyle başlayan satıra kadar taşıyın. `i' tuşuna basıp tekrar yazı moduna geçerek metin üzerinde biraz değişiklik yapın:

Arada sırada kitapta bir şeyler ararken /'e basasım gelmiyor değil.
Fazla vi kullanmaktan dolayı_tembelliğe alışmışız anlaşılan..
~
~
~
~
~


``dolayı'' kelimesini ekledikten sonra bir noktayı işaret etmek istiyorum. Kullandığım Linux makinası Türkçe destekli olduğu için Türkçe karakterleri okuyup yazmam mümkün, aslında Linux işletim sistemi hemen her ülkenin alfabesini desteklediğinden herhangi bir dilde (örneğin Alman alfabesi karakterlerini kullanarak) yazmak için birkaç komut yeterli oluyor.

`i' tuşu imlecin bulunduğu yerden yazmasına rağmen, `a' komutu bir karakter sağdan başlayarak yazmanızı sağlar. `o' komutu ise imlecin bulunduğu yerin altında bir satır boşluk bırakır ve boş satırın başına geçerek yazı moduna atlar. ESC tuşuna basarak komut modundayken en alt satıra inin ve `o' tuşuna basın. Burada bir satır daha ekleyelim:

Arada sırada kitapta bir şeyler ararken /'e basasım gelmiyor değil.
Fazla vi kullanmaktan dolayı tembelliğe alışmışız anlaşılan..
Sayfaları karıştırmak zor geliyor...
~
~
~
~


Eğer ekrandaki bilgi birkaç sayfadan ibaretse Control-F tuşunu bir sayfa ileri gitmek için, Control-B tuşunu ise metni bir sayfa geriye almak için kullanabilirsiniz.

vi her satırı kendi içinde numaralandırır. Belirli bir satıra gitmek için tuşlar dışında satırın numarası kullanarak da gidilebilir. `G' komutu yardımıyla imlecin gideceği satırı belirtebilirsiniz. Bunun için komut modunda iken satır numarasını girin (ekranda görünmeyecektir) ve hemen ardından `G' tuşuna basın. Eğer satır numarası girilmezse imleci dosyanın sonunda konumlandırılır.

Silme ve Kopyalama

Yazı modunda iken back space tuşu yardımıyla, komut modunda iken ise `x' komutu ile istediğiniz kadar harfi silmeniz mümkündür. `dd' komutu ise imleci üzerinde bulunduğu satırı siler ve alttaki tüm satırlar bir satır yukarı alınır. PC üzerindeki editörlerdeki satır sonuna gelince imlecin otomatik olarak bir satır aşağı kayması, :set wm=n satır komutu yardımıyla gerçekleştirilir. Komuttaki n sayısı, sağdan kaç boşluk bırakılacağını söyler. Ekranın sağından 4 satır boşluk bırakmak için (bu durumda satır uzunluğu 76 karaktere inecektir) :set wm=4 yazın.

`dd' veya `x' komutundan sonra silinen harf ve harf grupları hafızaya alınır ve istenildiği zaman `p' tuşu yardımıyla imlecin bulunduğu yerden itibaren ekrana basılır. `P' yardımıyla hafızadaki metni imlecin bir satır üzerine kopyalayabilirsiniz.

Kursörün bulunduğu yerden satır sonuna kadar silmek için `d$' , metin sonuna kadar silmek için `dG' kullanılabilir. ($ ve G harflerinin işlevlerine dikkat edin!)

Son kaldığımız yerden devam edelim. Son satırı `dd' ile silelim.

Arada sırada kitapta bir şeyler ararken /'e basasım gelmiyor değil.
Fazla vi kullanmaktan dolayı tembelliğe alışmışız anlaşılan..
~
~
~
~
~


Ardından kestiğimiz satırı P komutuyla en üste yapıştıralım .

Sayfaları karıştırmak zor geliyor...
Arada sırada kitapta bir şeyler ararken /'e basasım gelmiyor değil.
Fazla vi kullanmaktan dolayı tembelliğe alışmışız anlaşılan..
~
~
~
~


Tek bir karakteri başka bir karakterle değiştirmek için önce komut modunda karakteri silip yazı moduna geçtikten sonra gerekli değişikliği yapmaya gerek yoktur. `r' komutu tek bir harfi değiştirmek için kullanılır. Bu tuşa basınca imlecin üzerinde bulunduğu karakter silinir ve editör kullanıcıdan yerine gelecek karakteri bekler. Bundan sonra vi tekrar komut moduna döner.

Bir kelimeyi silip üzerine yazmak için de `cw' komutu kullanılabilir. Kelimenin başına gelin ve sırayla önce `c' sonra `w' tuşlarına basın. Editör yazmayı bitirmenizi bekleyecektir. ESC tuşuna basıncaya kadar yazdıklarınız ekranda kalacak ve (varsa) kelimeden arta kalan harf(ler) silinecektir.

Her ölümlü gibi siz de hata yapabilirsiniz. Hata yaptıktan sonra eski konuma dönmek için `u' komutunu kullanın. Bu komut, üzerinde değişiklikler yaptığınız metni son çalıştırılan komuttan önceki duruma getirir. Yeni konuma tekrar geri dönmek için Control-R 'ye basın.

Komut Tekrarı

20 satırı silmek için 20 kere dd tuşuna basmak gereksizdir. Bunun için `dd' komutundan önce klavyeden 20 rakamını girmek yeterli olur. Girilen rakamlar `G' komutundaki örneğe benzer şekilde ekranda görünmezler. Kullanılan rakamlar, kendinden sonra gelecek olan komutun kaç kere işletileceğini belirtir. Örnek olarak `8x' komutu sekiz karakteri siler, `12j' komutu 12 satır aşağı iner. Üzerinde çalıştığımız dosyada birkaç uygulama yapalım. Kursörü ilk satırdaki ``geliyor'' kelimesinin başına alın ve `7x' komutunu girin. Son durum yaklaşık şu şekilde olmalıdır:

Sayfaları karıştırmak zor ...
Arada sırada kitapta bir şeyler ararken /'e basasım gelmiyor değil.
Fazla vi kullanmaktan dolayı tembelliğe alışmışız anlaşılan..
~
~
~


vi'ın komut tekrar özelliği sayesinde ekrana yazdıklarınızı ardarda kopyalayabilirsiniz. Örnek dosya üzerinde birinci satırın başına gidin ve `9i' yazın. Gireceğiniz yazı modunda ekrana ne gönderirseniz ESC tuşundan sonra 9 kopyası basılacaktır:

bip bip bip bip bip bip bip bip bipSayfaları karıştırmak zor ...
Arada sırada kitapta bir şeyler ararken /'e basasım gelmiyor değil.
Fazla vi kullanmaktan dolayı tembelliğe alışmışız anlaşılan..
~
~
~
~


Kopyalama

Silinen karakter veya karakter gruplarının hafızaya kaydedildiğini söylemiştik. Bu hafıza geçici bir tampon vazifesi görür. `yy' komutu üzerinde bulunduğu satırı kopyalar. Eğer komuttan önce sayı girilirse o kadar satır kopyalanır. Ardından kullanıcı metin üzerinde istediği yere gelip `p' tuşuna basarak hafızadaki satırları imlecin bulunduğu satırın altından itibaren basar. `yy' komutu yerine `Y' de tercih edilebilir.

Arama ve Eşleştirme

vi'da çalışırken arama yapmak isteyebilirsiniz. Eğer üzerinde çalıştığınız metin uzun ise belirli bir kelime veya kelime gruplarını aramak çok zaman alabilir. Komut modunda iken `/' karakterine basarak arama/tarama moduna geçin. Ekranın en alt kısmında bir satır açılacaktır. Aramak istediğiniz kelimeyi yazın ve ENTER tuşuna basın. vi editörü imlecin bulunduğu yerden itibaren girilen anahtar sözcüğü metin içinde tarayacaktır. Eğer aranan kelime bulunmuşsa satır bunun üzerine konumlandırır.

`/' komutu dosyanın sonuna doğru arama yaparken `?' komutu başa doğru gider. Aynı kelimeyi tekrar aratmak için `n' tuşuna basın. Arama işlemi, `/' komutu yardımıyla yapılmışsa ileri doğru, `?' komutu yardımıyla yapılmışsa geriye doğru tekrar başlayacaktır.

Aslında arama yaparken komut modunda girilen her karakter grubu bir düzgün deyimdir. Örnek olarak komut modunda `d$' yazdığımızda $ harfinin satır sonunu belirttiğini, `dG' komutundaki `G' harfinin de metin sonunu işaret ettiğinden imlecin bulunduğu yerden itibaren dosya sonuna kadar sildiğini görmüştük. Metin içindeki büyük harfleri aramak için





/[A-Z]

kullanılabilir. Burada gösterebildiğimiz özellikleri vi'ın sadece küçük bir parçasıdır. vi kullanıcılarının işine yarayabilecek birkaç arama-eşleştirme komutuna göz atalım.

:[a,b]s/deyim/eşlenecek deyim/işleç

Yukarıdaki komut metin içinde a ve b satırları arasındaki ``deyim''i, ``eşlenecek deyim''e çevirir. Özel tanımlı karakterleri de kullanabilirsiniz. Aşağıdaki komut da 1. ve 10. satırları arasında bulduğu tüm ``nümerik'' kelimelerini ``sayısal'' hale getirir.

:1,10s/nümerik/sayısal;

Satır sayısı yerine tüm dosya üzerinde eşleştirme yapmak için % sembolünü, satır sonunu belirtmek için $ sembolünü kullanabilirsiniz. Bu durumda satır sayısını belirten [a,b] tanımını boş bıraktığınızda değişiklik sadece imlecin bulunduğu satırda yapılacaktır. İşleçler de birkaç çeşit olabilir. `c' işleci, her eşleme öncesi kullanıcıdan izin alır. vi kullanırken çoğu durumda her satırda rastlanan ilk eşlemeyi yerine getirecek olan `g' işlecini kullandığınızı göreceksiniz. Daha az kullanılan `i' işleci ise aramanın büyük-küçük harf gözetimi yapmadan yerine getirmesini sağlar.





:%s/elektronik/s/nik//g

komutu, içinde ``elektronik'' kelimesi geçen her satırdaki ``elektronik'' kelimesini ``elektron'' haline getirir. Fakat ``mekanik'' kelimesine dokunmaz. Sed altında kullanılan `\(\)' operatörü vi için de geçerli bir tanımdır. Aşağıdaki komut da yukarıdaki uygulamaya benzer şekilde her ``kalemlik'' kelimesini ``kalemler'' haline getirir.





:g/\(kalem\)lik/s//\1ler/g

Diğer Dosyaların Metne Eklenmesi

Kursörün bulunduğu yerden itibaren rehber.txt dosyasını halihazırda çalıştığınız metine kopyalamak için





:r rehber.txt

komutunu kullanın.

Kabuk Komutlarının Çalıştırılması

vi altında iken kabuk komutlarını, hatta kabuğun kendisini bile çalıştırmak mümkündür. `:!' ile komut ismini girebilirsiniz. Aşağıdaki komut vi'dan çıkmadan ls komutunu çalıştıracak ve sonucu ekrana verecektir.





:!ls -la

Bunun yanısıra komut çıktısını ekran yerine üzerinde çalıştığımız metine aktarmak için aşağıdaki vi komutunu kullanın:





:r! ls -al

Metnin son halini görelim:

bip bip bip bip bip bip bip bip bipSayfaları karıştırmak zor ...
Arada sırada kitapta bir şeyler ararken / 'e basasım gelmiyor değil.
Fazla vi kullanmaktan dolayı tembelliğe alışmışız anlaşılan..
bash.txt
index.html
images/
~


vi Başlangıç Dosyaları

vi her açıldığında belirli bir dosyayı okur ve gerekli düzenlemeleri ve düzeltmeleri yapar. Bu işlemler için kullanılan set komutu birtakım parametreler alır. Örneğin set wm=n , n karakter kenar boşluğu bırakmak için, set nu ise her satırın numaralandırılması için kullanılır. Bu komutlar ister vi içinde , ister başlangıç dosyası içinde çalıştırılabilir.

vi her açılışta öntanımlı olarak önce bulunduğunuz dizin içindeki, ardından ev dizininizin içindeki .exrc dosyasına bakar. Böylece açılış anında konfigürasyon işlemlerini bu dosyayı kullanarak kolayca gerçekleştirebilirsiniz. Dosyaya her satırda bir set komutu gelecek şekilde istedinildiği kadar komut yerleştirilebilir. Aşağıda örnek bir .exrc dosyası görülüyor.





set ignorecaseset wrapmargin=2set tabstop=6

Yukarıdaki seçenekler arasında ignorecase, vi editörünün arama yaparken küçük-büyük harf ayrımı gözetmemesini; wrapmargin=2 sol kenardan iki satır boşluk bırakmasını; tabstop=6 ise TAB tuşuna her basıldığında imlecin 6 karakter ileri gitmesini sağlar. Daha kısa yazmak isterseniz sırasıyla ic, wm ve ts kullanın.
Logged

Rock & Metal Müzik: Linkleri Sadece Üyelerimiz Görebilir.  Üye Ol veya Giriş Yap
http://www.foreverrock.net
« Yanıtla #12 : 22 Haziran 2006, 16:09:07 »
[DooMsDaY]
Administrator
*



Rep: 65535
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 2865
288317.00 Forum Lirası

Extra Listesi
Üyeye para gönder

Üyelik Bilgileri WWW

. Tcp/ip
Diğer açık sistemler gibi Linux'un da en büyük özelliklerinden biri ağ protokolleri ve uygulamalarının sistemin en doğal parçalarından biri olmasıdır. Dolayısıyla ağ yapısını bilmeyen bir yöneticinin, açık sistemler üzerindeki bilgisini daha da geliştirebilmesi mümkün değildir. Bu bölümde anlatılacaklar Linux üzerinde TCP/IP'ye bir giriş yapılmasını sağlayacaktır. Ayrıntılı bilgi TCP/IP servislerinin ve uygulamalarının anlatıldığı diğer bölümlerden ve aşağıda sözü edilen kitap ve dökümanlardan edinilebilir.

TCP/IP üzerine önerebileceğimiz bir kitap, ilk baskıları TÜBİTAK tarafından bastırılan, ve büyük bir okuyucu kitlesi bulmuş Herkes İçin İnternet (Kürşat Çağıltay) 'tir. Bunun dışında İngilizce Prentice Hall tarafından yayınlanan Internetworking with TCP/IP Volume I (D.E. Comer), O'Reilly & Associates tarafından yayınlanan, TCPIP Network/ Administration (Craig Hunt) ve Linux Network Administrator's Guide (NAG - Olaf Kirsh). NAG, Linux Documentation Project'in bir parçası olduğundan elektronik kopyası İnternet üzerinden ücretsiz olarak edinilebilir.

Linux Documentation Project grubunun hazırladığı NET-3-HOWTO, TCP/IP temelleri ve ağ uygulamalarını örnekleriyle işlemiş. Bu dökümanı nasıl temin edebileceğinizi kitabın sonunda bulabilirsiniz. NET-3, TCP/IP ve buna bağlı protokollerin Linux için geliştirilen bölümüne verilen isimdir.

8.1 Temel TCP/IP

TCP/IP, ilk defa ABD'de ARPANet (Advanced Research Projects Agency Network) adı altında, askeri bir proje olarak geliştirildi. Önceleri askeri amaçlı düşünülen proje önce ünivesiteler tarafından kullanılmaya başlandı. Ardından ABD'nin dört bir yanında birbirinden bağımsız geliştirilen ağlar, tek bir omurga altında NSFNet olarak adlandırıldı ve ulusal boyutu aşarak dünyaya yayıldı. İnternet'in doğuşu da bu tarihe denk gelir.

Bir sokak üzerinde yeralan evlerin adresleri gibi, İnternet'e bağlı olan her makinanın da bir adresi vardır. Bu adres sayesinde bir bilgisayardan diğerine ulaşmak mümkün olur. İnternet adresi 4 bayttan (32 bit) ibaret olup yazılırken her bayt arasına bir nokta konulur. En çok kullanılan bu gösterim şekline örnek olarak, ODTÜ'deki bir bilgisayarın adresi olan 144.122.199.20'yi verebiliriz.

Bununla beraber, 4 baytlık numaraların kolayca hatırlanmasının mümkün olmadığından, İnternet üzerindeki makinalara alfanümerik adlar da verilebilir. Yukarıda örneğini verdiğim adresin ismi, knidos.cc.metu.edu.tr'dır. ilk noktaya kadar olan kelime, makina adıdır(yukarıdaki örnekte knidos), bundan sonraki noktayla ayrılmış bölümler özelden genele doğru makinanın ait olduğu kurum, kurumun tipi ve ülke gibi bilgiler içerir. Bu adlandırma yöntemiyle ilgili ayrıntılı bilgiyi Alan İsimlendirme Sisteminin (Domain Name System - DNS) anlatıldığı bölümde bulabilirsiniz.

8.2 İnternet Adresleri

İnternet üzerinde 3 sınıf adres vardır. Avrupa'da RIPE (Réseaux IP Européens) tarafından dağıtılan bu adresler daha sonra o yerin ağ yöneticisi tarafından uygun şekilde bölünebilir. Bu bölümlendirmeye ``subnetting'' işlemi adı verilir. Bu sayede ağlar gruplanarak herbirisinin yönetimi bağımsız hale getirilmiş, aynı zamanda da kısıtlı olan IP adresleri daha verimli bir şekilde kullanılmış olur.

Üç çeşit İnternet adresi şunlardır :



A sınıfı İnternet adresi: Adresin ilk baytı 1 ile 126 arasında bir sayıdır. Bu adrese verilen yetkiyle toplam 2^24 makina adreslenebilir. Dünya üzerinde 126 tane A sınıfı adres vardır.
B sınıfı İnternet adresi: Adresin ilk baytı 128 ile 192 arasında bir sayıdan oluşur. Bu adresin subnetlere bölünmesiyle 65534 farklı makina adreslenebilir.
C sınıfı İnternet adresi: Adresin ilk baytı 192 ile 223 arasındadır. C sınıfı bir adresi blokuyla bağlı 254 bilgisayar adreslenebilir.

A ve B sınıfı adreslerin hepsi dağıtılmış ve şu anda intenet C sınıfı adreslerde de sıkıntı çekilmektedir. Adres yetersizliğine çözüm getirmek amacıyla IPv6 ya da IPNG adlarıyla daha uzun İnternet adresleri kullanan protokoller geliştirilme ve test aşamasındadır.

Bir İnternet adresi iki kısımdan meydana gelir: ağ adresi ve düğüm adresi. Her makina, bir ağ üzerinde bulunur ve bu adres ``ağ adresi'' olarak adlandırılır. Üç sınıf (A, B ve C) İnternet adresinin ağ ve düğüm adresleri farklı farklıdır. A sınıfı İnternet adreslerinde ağ adresini 1 bayt tayin eder. Örnek olarak hayali yazılan 74.198.59.33 makinasını tanımlayan ağ adresi 74'tür. Ağ adresi uzun halde yazıldığı zaman kalan 3 baytın yerine 0 konur. Bu durumda yukarıda adı geçen makinaya ait ağ adresi 74.0.0.0 olacaktır.

Ağ adresinden geriye kalan düğüm adresi, bir makinanın İnternet sınıfına göre 1,2 veya 3 bayttan ibaret olabilir. Örnek olarak,

195.12.288.3 makinasının (C sınıfı) ağ adresi 195.12.288.0, düğüm adresi 3'tür.

130.11.195.62 makinasının (B sınıfı) ağ adresi 130.11.0.0, düğüm adresi 195.62'dir.

Düğüm adresleri yerine 4 baytı da kullanmak da olası. Yukarıdaki iki örnek için düğüm adreslerini sırasıyla 195.12.288.3 ve 130.11.195.62 olarak kabul edebiliriz.

Yukarıda sözedilen subnetting (alt ağlara ayırma), çok sıkça kullanılan bir yöntem olup getirdiği birtakım kolaylıklar vardır. Büyük bir iletişim ağı alt ağlara ayrılırsa, kontrol edilmesi daha kolaylaşır.

Bir kuruluş, kendine ait olan B sınıfı adresi subnetlere bölmek isteyebilir. Gerekli düzenlemeleri yaparak bir B sınıfı adresi (örneğin) 255 adet alt adrese ayırabilir. ODTÜ'nün NIC'den aldığı 144.122.0.0 ağı, 254 parçaya bölünmüş, bu parçalardan 144.122.71.0 alt ağı Bilgisayar Mühendisliği bölümüne, 144.122.34.0 alt ağı Kimya Mühendisliği bölümüne verilmiştir. Bundan sonra her bölüm kendi ağı ve üzerindeki makinalardan sorumlu olur.

8.3 Protokoller

Internet protokollerinin yaygınlaşmasındaki en önemli etkenlerden biri herhangi bir ağ donanımına ya da firmaya özel olmamalarıdır. Bilgisayarınız, işletim sistemiz ya da ağ bağlanma yönteminiz ne olursa olsun intenete bağlamanız mümkündür. İnternet protokolleri RFC adı verilen dökümanlarda açıklanır, bu dökümanlar herkese açıktır ve ücretsizdir. RFC'lere NIC ya da ODTÜ'deki yansısından erişebilirsiniz.

Internet protokollerinin temeli Intenet Protocol (IP)'dir. İnternet üzerinde yönlendirme(routing) gibi temel ağ işlemlerinin gerçekleştirildiği protokol katmanıdır. IP paketlerinin her biri kendi başlarına aradaki ağ cihazları tarafından yönlendirileren paket içinde belirtilen adrese ulaştırılır. Bu sırada fiziksel ağ farklılıklarından kaynaklanan paket parçalanmaları(fragmentation) ve bunların yeniden birleştirilmeleri aradaki ağ cihazlarının aşırı yüklenmelerini önlemek gibi görevler de IP katmanı tarafından gerçekleştirilir.IP bağlantı temelli(connection oriented) bir ağ protokolü değildir. Bunun yanı sıra IP paketlerin içeriklerinin doğruluğunu da garanti etmez. IP katmanı sadece başlık kısmında oluşan hataları bulur ve düzeltir. Internet üzerinde yönlendirme, yukarida sözü edilen adreslerden yararlanılarak yapılır.

Kullanıcı uygulamalarının IP katmanına doğrudan ulaşımları yoktur. IP ve uygulama programları arasındaki bağlantıyı sağlayan iki protokol vardır: Transmission Control Protocol (TCP) ve User Datagram Protocol (UDP). TCP, İnternet protokolleri arasındaki en önemli protokollerden biridir (İnternet protokol ailesi bu nedenle TCP/IP diye adlandırılır.). TCP, IP katmanının sağlamadığı bağlantı temelli, güvenilir servisi sağlar. TCP kullanarak ağ üzerinden veri aktaran programlar, bir dosyadan okuyormuş ya da yazıyormuş gibi güvenle ağ bağlantısını kullanabilirler. Arada oluşan hatalar TCP tarafından onarılır. IP protokol katmanına uygulma programları doğrudan erişemediklerinden, hata kontrolü ve bağlantı gerektirmeyen ya da bu işlemleri kendileri gerçekleştirmek isteyen uygulamalar UDP kullanarak ağ üzerinden iletişim sağlarlar.

Yukarıdaki protokollerin yanı sıra İnternet standardı olmuş birçok uygulama protokolü de vardır. Bunlar arasında, TELNET, FTP, SMTP ve HTTP gösterilebilir.

İnternet üzerinde paketler son makinaya ulaştıktan sonra, ilgili uygulama programına ulaşabilmesi için port adı verilen sanal numaralar kullnılır. Servis veren uygulamalar, önceden belirlenmiş standart port numraları kullanırlar. Örnek olarak SMTP 25 numaralı TCP portunu, talk ise 518 numaralı UDP portunu kullanır. Sisteminizin kullandığı port numaraları ve bunların isimlerini /etc/services dosyasından görebilirsiniz.

8.4 İnternet'e Bağlanma

Linux'u İnternet'e bağlamak ilk aşamada biraz zor görünse de biraz teori, biraz pratik yardımıyla mantık kolayca anlaşılabiliyor. Ağlar, bilgisayar sistemlerinde hata olma olasılığı en yüksek, en çok sorunun çıktığı alandır. Bu bölüm, özelde bir ethernet kartı ile bağlantı yapıldığı varsayılarak anlatılmıştır. Ancak anlatılan birçok kavram herhangi bir yapıdaki İnternet bağlantısı için geçerli olacaktır.

Öncelikle çekirdeği -daha önce yapmamışsanız- ağ bağlantısına destek verecek şekilde tekrar derleyin. Bunun için gerekli birkaç soruya "y" cevabı vermek yeterli olacaktır :





CONFIG NET ? [Y/n] y...TCP/IP networking (CONFIG_INET) [Y/n/?] y...Network device support (CONFIG_NETDEVICES) [Y/n/?]...Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [N/y/?] y...Other ISA cards (CONFIG_NET_ISA) [N/y/?] y...NE2000/NE1000 support (CONFIG_NE2000) [N/y/m/?] y

Yukarıdaki örnekte ethernet kartınızın ne2000/ne1000 ya da uyumlu bir kart olduğu var sayılıyor. Kartınızın marka/modeline uygun seçeneneğe `y' cevabı vermelisiniz. Ethernet kartlarının dışında bağlanma yönteminize bağlı olarak çekirdeği PPP, SLIP, Token Ring gibi bir destekle derlemeniz gerekebilir. Bunları modül olarak derlemeniz de mümkün. Çekirdek derlemek konusunda daha ayrıntılı bilgiyi bu kitabın ilgili bölümünde bulabilirsiniz.

Logged

Rock & Metal Müzik: Linkleri Sadece Üyelerimiz Görebilir.  Üye Ol veya Giriş Yap
http://www.foreverrock.net
« Yanıtla #13 : 22 Haziran 2006, 16:09:53 »
[DooMsDaY]
Administrator
*



Rep: 65535
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 2865
288317.00 Forum Lirası

Extra Listesi
Üyeye para gönder

Üyelik Bilgileri WWW

Tabi ki çekirdeği derlemek yetmiyor, derleme aşamasından sonra ağ desteğine sahip olan çekirdek ile makinanın açılması gerekir.

Bağlantıyı gerçekleştirmek için ağ sorumlusundan bazı önemli bilgileri almalısınız. Makinanızın IP adresi bunların başında gelir. Diğer gerekli bilgiler de subnet mask ve broadcast adresidir.

DNS adres çözümleyici olarak çalışan DNS makinası ve makinanızı İnternet'e bağlayacak olan yönlendiricinin IP adreslerini de biliyor olmalısınız.

Bu aşamadan sonra konfigürasyon işlemlerine geçilebilir.

Ağ Konfigürasyonu

Bu bölümde anlatılan rc.* konfigürasyon dosyaları Slackware dağıtımına özeldir. Diğer dağıtımlarda da açılışta çalışan benzeri rc dosyaları değiştirilerek, ya da sistemle birlikte gelen sistem yönetim araçları kullanılarak istediğiniz konfigürasyonu yapabilirsiniz.

Linux, açılırken bazı dosyalara bakarak düzgün çalışması için gerekli konfigürasyonu yapar ve bazı yazılımları çalıştırır. Bu dosyalar /etc/rc.d dizini altında yeralır. İnternet bağlantısı için sadece iki dosyaya gerek duyulur. Slackware dağıtımı içinde bunlar, konfigürasyonu yapan /etc/rc.d/rc.inet1 ve temel ağ programlarını çalıştıran /etc/rc.d/rc.inet2 dosyalarıdır.

Bu dosyadaki değerleri gerektiği şekilde düzenleyerek İnternet'e bağlanacağız. Öncelikle rc.inet1 dosyasının içeriğine göz atalım:





HOSTNAME=`cat /etc/HOSTNAME`/sbin/ifconfig lo 127.0.0.1/sbin/route add -net 127.0.0.0IPADDR="144.122.71.55"NETMASK="255.255.25 5.0" NETWORK="144.122.71.0" BROADCAST="144.122.71.255"GATEWAY="144.122.71.1" /sbin/ifconfig eth0 $IPADDR broadcast $BROADCAST netmask $NETMASK/sbin/route add -net $NETWORK netmask $NETMASK/sbin/route add default gw $GATEWAY metric 1

ifconfig komutu, ağ bağlantısı yapan kartın belirli parametreler ile konfigürasyonunun sağlar. Kart kimliğini bilgisayara tanıtmak için bu komut kullanılır.

İlk satırdaki ifconfig programı, makinanın kendisiyle haberleşmesini sağlamak amacıyla kendi ağ adresini (loopback device) 127.0.0.1 olarak tanıtmıştır. İnternet üzerindeki her makinanın loopback adresi 127.0.0.1 'dir. 127 ile başlayan hiç bir adres, İnternet üzerinde gerçek bir adres olarak kullanılamaz.

Her paket, gönderileceği adrese gitmeden önce bir tabloya bakar. Bu tablo, paketin muhtemel rotasını içerir. route komutu yardımıyla bu tablo oluşturulur veya kontrol edilir. Genellikle bir kart için bir ifconfig kullanılırken, paketin yollanacağı birden fazla rotanın olması durumunda rc.inet1 dosyasında birden fazla route komut girdisi yapılacaktır.

Kullanılan her ağ kartının bir veya birden fazla internet adresi olabilir. Linux'a takılan birinci kart eth0 ismini alırken ikinci karta eth1, üçüncüye eth2 ... denir. Loopback cihazının ismi lo dur. ifconfig komutunu parametre vermeden kullanırsanız, Linux'a tanıtılan çevresel birimlerin listesi ekrana gelir.





$ ifconfiglo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:493 errors:0 dropped:0 overruns:0 TX packets:493 errors:0 dropped:0 overruns:0eth0 Link encap:10Mbps Ethernet HWaddr 48:54:33:00:E8:3A inet addr:144.122.71.55 Bcast:144.122.71.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:171956 errors:0 dropped:0 overruns:0 TX packets:113212 errors:3 dropped:0 overruns:0 Interrupt:3 Base address:0x300

cclub.metu.edu.tr makinasının ifconfig bilgisi yukarıdaki şekildedir. Bu makina üzerinde tek ethernet kartı olup, ifconfig bilgisinde ikinci sırada yeralıyor. Kartla ilgili detaylı bilgi (her kart özgü donanım numarası, alınan ve verilen paket sayısı gibi) ifconfig çıktısında var.

route komutunun genel kullanımı şu şekildedir:





route [add | del] [-net | -host] varis_adresi [gw yonlendirici] secenekler...

host: paketin gideceği yer başka bir makina
net: paketin gideceği yer başka bir ağ
varış_adresi: paketin gideceği yer
yönlendirici: bu paketin gidebilmesi için geçmesi gereken yönlendirici
add: tabloya ekle
del: tablodan sil


Tablonun genel durumunu kontrol etmek için route komutuna parametre vermeden komut satırından yazın:





cclub:~# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Ifacelocalnet * 255.255.255.0 U 0 0 67 eth0loopback * 255.0.0.0 U 0 0 3 lodefault router71.ceng.m 0.0.0.0 UG 1 0 404 eth0

Örnek tabloda üç ayrı yönlendirme girişi vardır. Birincisi, makinanın kendisi ile haberleşmesini sağlayacak olan loopback. İkinci satırda, yerel ağa gidecek olan tüm paketlerin yönlendiriciye verilmeden ağa yönlendirilmesi söylenmiş. Son sırada ise (default) paket ilk iki satırda yeralan varış adresinden farklı bir adrese gidecekse, önce yönlendiriciden geçip sonra dış dünyaya açılacağından yönlendiricinin IP adresi yazılmıştır.

ifconfig, biraz karmaşık bir komuttur. Sistem yöneticisinden öğrenmeniz gereken subnet maskesi, broadcast adresi ve IP adresini kullanıp kartların konfigüre eder.





ifconfig eth0 144.122.71.55 netmask 255.255.255.0 broadcast 144.122.71.255

Yukarıda ifconfig yardımıyla eth0 kartına hem bir IP adresi verilmiş, hem de bilgisayarın bulunduğu ağın özellikleri tanıtılmıştır.

Bu andan sonra istendiği kadar route komutu ile makinadan çıkacak paketler için yeni yollar tanımlanabilir.





route add -net ...route add -host ...

Dosyanın içeriğini sistem görevlisinin verdiği bilgiler doğrultusunda değiştirdikten sonra komut satırından çalıştırmanız, İnternet'e bağlantı için yeterli olacaktır.





# /etc/rc.d/rc.inet1

Bağlantıyı kontrol etmek İnternet adresini bilip çalıştığından emin olduğunuz bir makinaya telnet ile bağlantı yapmaya çalışın :





$ telnet orca.cc.metu.edu.trConnected to orca.cc.metu.edu.trEscape character is ^]

Ethernet kartının bağlantısını yazılım yoluyla kesmenin yolu ifconfig 'in down seçeneğidir. Örneğin tek ethernet kartı üzerinden İnternet bağlantınız var ve bunu hemen kesmek için aşağıdaki satırı yazın.





# ifconfig eth0 down

ethernet bağlantısını yeniden açmak için





# ifconfig eth0 upkomutunu girmelisiniz. Bu işlem sonrasında yönlendirme bilgilerini yeniden girmeniz gerekebilir.



ping komutu, bağlantıları ve aynı zamanda bağlantı hızını ölçmek için kullanılan bir komuttur. Ping, ICMP protokolü yardımıyla hedef makinaya belirli uzunlukta paketler gönderir. Karşıdaki makina bunları aldığı anda bekletmeden geri yollar. Arada geçen zaman farklı, iki makina arasındaki bağlantı hızı hakkında fikir verir.





cclub:~# ping knidos.cc.metu.edu.trPING knidos.cc.metu.edu.tr (144.122.199.20): 56 data bytes64 bytes from 144.122.199.20: icmp_seq=0 ttl=253 time=34.0 ms64 bytes from 144.122.199.20: icmp_seq=1 ttl=253 time=487.7 ms64 bytes from 144.122.199.20: icmp_seq=2 ttl=253 time=3.6 ms--- knidos.cc.metu.edu.tr ping statistics ---3 packets transmitted, 3 packets received, 0% packet lossround-trip min/avg/max = 3.6/175.1/487.7 ms

netstat komutu, makinanın ağ kartı üzerinden yapılan bağlantıların dökümünü çıkarır.





cclub:~# netstatActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 cclub.metu.edu.tr:1947 ftp02.quicktime.appl:20 ESTABLISHED tcp 0 0 cclub.metu.edu.tr:1943 despair.thebandit.c:ftp ESTABLISHED tcp 0 0 cclub.metu.edu.tr:1424 despair.thebandit.co:20 ESTABLISHED tcp 0 0 cclub.metu.edu.tr:1932 ftp02.quicktime.app:ftp ESTABLISHED tcp 0 0 cclub.metu.edu.tr:1407 165.113.58.253:20 ESTABLISHED tcp 0 0 cclub.metu.edu.tr:1392 165.113.58.253:ftp ESTABLISHEDtcp 0 0 cclub.metu.edu.tr:1377 ppp23.cc.metu.ed:telnet ESTABLISHED tcp 0 0 cclub.metu.edu.t:telnet pclabI_23.feas.met:7075 ESTABLISHED tcp 1 0 cclub.metu.edu.t:telnet ppp23.cc.metu.edu.:1054 TIME_WAIT tcp 0 0 cclub.metu.edu.t:telnet labmonitor.feas.m:10345 ESTABLISHED tcp 0 9495 cclub.metu.edu.t:telnet a5-03-asy27.bil-ro:1026 ESTABLISHED tcp 0 0 cclub.metu.edu.t:telnet pclabI_14.feas.me:15694 ESTABLISHED tcp 0 0 cclub.metu.edu.t:telnet stu21.math.metu.e:16158 ESTABLISHEDActive UNIX domain sockets (w/o servers)Proto RefCnt Flags Type State I-Node Pathunix 1 [ ] STREAM CONNECTED 232 unix 1 [ ] STREAM CONNECTED 299 unix 1 [ ] STREAM CONNECTED 327 unix 1 [ ] STREAM 591

İkinci önemli dosya olan /etc/rc.d/rc.inet2, belli başlı tüm İnternet sunucularını çalıştırır. Aşağıda bu dosyanın bir kısmı görülüyor.





#!/bin/shNET="/usr/sbin"IN_SERV="lpd"LPSPOOL="/var/spool/lpd"echo -n "Starting daemons:"# inetd calistiriliyor.if [ -f ${NET}/inetd ]; then echo -n " inetd" ${NET}/inetdelse echo "no INETD found. INET cancelled!" exit 1fi# degisik internet servisleri sirasiyla calistiriliyor.for server in ${IN_SERV} ; do if [ -f ${NET}/${server} ]; then echo -n " ${server}" ${NET}/${server} fidone

Bu açılış dosyası, ağ üzerinden servs veren bir dizi sunucu programı çalıştırıyor ve hataları engellemek için programların yerinde olup olmadığına da bakıyor.

Kontrol Dosyaları

Konfigürasyonu tamamlamak için /etc dizini altında yeralan bazı dosyaların elden geçirilmesi gerekir. Bu dosyalar sistemin daha güvenli ve verimli çalışmasına yardım eder. Bu dosyaların belli başlı olanları ve ne işe yaradıklarını görelim.

/etc/hosts dosyasında makinaların IP numaraları ve İnternet adresleri yazılır. Buraya sürekli kullanılan belli başlı önemli makinaların girişi yapılabilir. Her makinanın uzun isimleri yerine kısa bir kelime yazılarak sözkonusu makinaya ulaşılabilir. Örnek bir /etc/hosts dosyası :





127.0.0.1 localhost144.122.199.20 knidos.cc.metu.edu.tr knidos

İlk satırda loopback IP numarası ve buna karşılık gelen makina ismi vardır. Bu satırı silmemelisiniz. İkinci satırda ise knidos.cc.metu.edu.tr makinasının IP numarasını 144.122.199.20 olarak belirtilmiş ve bu bilgisayara "knidos" ismi ile de ulaşılabilmesi sağlanmıştır.

/etc/hosts.allow ve /etc/hosts.deny konfigürasyon dosyaları, başka bir makinadan Linux'unuza yapılan bağlantıları denetler. /etc/hosts.deny içine, sınırlandırılma getirmek istediğiniz İnternet servislerini ve hangi makinalar için sınırlandırma istediğinizi yazabilirsiniz.





$ cat /etc/hosts.deny#in.fingerd: ALL except localhost, localhost : \ echo "request from %d@%h" >> /tmp/req; in.telnetd : .net.tr

Yukarıdaki hosts.deny dosyasında dışarıdan gelebilecek finger istekleri filtreleniyor ve bu istekler hakkında detaylı bilgi (hangi kullanıcı, hangi makinadan) /tmp/req dosyasına ekleniyor.

Sonraki satır in.telnetd yazılımını çalıştıran isteklerin *.net.tr adreslerinden gelmesi halinde bunların gözardı edileceğini belirtir.

hosts.allow dosyasında, genellikle hosts.deny dosyasına gruplanan makina isimlerinin sınırlandırma istenmeyen bir veya birkaç tanesi yazılır. Eğer bir makina ismi ve karşılık gelen İnternet adresi her iki dosyada da varsa, sözkonusu servise izin verilir.

Daha fazla bilgiyi hosts_access(5) man sayfalarından bulabilirsiniz.

/etc/resolv.conf dosyasında alan adı ve alan adı sunucusunun IP numarası yazılır.





$ cat /etc/resolv.confdomain linux.org.trnameserver 144.122.199.20

Yukarıdaki satırlardan üzerinde bulunduğum makinanın alan adının (domain name) linux.org.tr, alan adı sunucusunun ise 144.122.199.20 IP numaralı knidos makinası olduğu anlaşılıyor.

8.5 Yönlendirme

Daha önce de belirtildiği gibi birden fazla ağa fiziksel bağlantısı bulunan ve ağlar arası bilgi paketlerinin geçişine olanak tanıyan araçlara yönlendirici (router) adı verilir.

İki ayrı ağda yeralan makinaların haberleşmesine imkan tanıyan yönlendiriciler, kendilerine gönderilen paketleri bir ağdan diğerine iletirler.

Herhangi bir ağ içerisinde yer alan makinalar aynı IP ağ içerisinde bulunan makinalarla (ağ konfigürasyonları doğru olduğu sürece) haberleşebilirler. Başka adreslere ulaşabilmek için bulunulan ağ dışındaki ağlarla bağlantısı olan ve o ağ üzerinde bulunan bir makina ile haberleşmeleri gereklidir. Bu makina bilgisayar tanımlarında gateway (yönlendirici, arabirim, arayol) olarak verilir.

Minimum yönlendirme, bir ağa bağlı olmayan makinalarda, ifconfig yardımıyla yapılan yönlendirmedir. En çok kullanılan statik yönlendirme çeşidinde, az sayıda arayol ile dışarıya bağlı olan bir makinada, route komutuyla yapılır. Aynı adrese ulaşan birden fazla arayol olması durumunda ise, kendi yönlendirme tablosunu ağın durumuna göre değiştirebilen dinamik yönlendirmeye başvurulabilir.

Linux'un yönlendirici olarak kullanılmasına bir örnek verilebilir. Elimizde var olduğunu bildiğimiz iki ağ olsun. Bu ağlardan birincisini, 144.122.71.0 ağı, diğeri de 144.122.1.0 ağı olarak kabul edelim. 144.122.71.0 ağının İnternet'e bağlanabilmesi için 144.122.1.0 ağına ulaşması gereklidir. Yönlendirici olarak kullanılacak makinayı 71.0 ağında kurup gerekli yönlendirme talimatları verildiği anda bu ağa bağlı olan diğer makinalar da İnternet'e açılabilecektir.

Örnek olarak 144.122.71.0 ağı üzerindeki bir makina için ifconfig satırı





ifconfig eth0 144.122.71.1 broadcast 144.122.71.255 netmask 255.255.255.0

olarak görünüyor. Bu makinanın yönlendirici görevi yapabilmesi için route komutu kullanılır. Bu sayede bu bilgisayar, diğerlerine ulaşacaktır.





route add -net 144.122.71.0 netmask 255.255.255.0 dev eth0

Bu, 144.122.71.0 ağında olan makinaların eth0 kartı üzerinden erişilebileceğini gösterir. Diğer adreslere erişebilmek için ise bir çıkışa (gateway) ihtiyaç duyulmaktadır.





route add default gw 144.122.71.1 dev eth0

Bu satır sayesinde eldeki tablo yardımıyla çözümlenemeyen adreslere gitmesi gereken tüm paketler 144.122.71.1 üzerinden gönderilmektedir. Bu durumda bu makinanın paketleri nereye göndereceğini bildiği varsayılmaktadır.

Bu makina içinde iki adet ethernet bağlantısı bulunmaktadır. Bunlardan biri yönlendiriciyi 144.122.71.0 ağına bağlarken diğeri 144.122.1.0 ağına bağlamaktadır. İlk olarak bu iki kart için gereken tanımlamalar /etc/rc.d/rc.inet1 içerisinde aşağıdakine benzer şekilde tanımlanmıştır.


ifconfig eth0 144.122.71.1 broadcast 144.122.71.255 netmask 255.255.255.0ifconfig eth1 144.122.1.200 broadcast 144.122.71.255 netmask 255.255.255.0

Birinci ethernet kartı için eth0, ikinci ethernet kartı için de eth1 kısaltmaları kullanılabilir. Doğal olarak her iki ağ için bir 'route' satırı gerekmekte :


route add -net 144.122.71.0 netmask 255.255.255.0 dev eth0route add -net 144.122.1.0 netmask 255.255.255.0 dev eth1

Bu sayede diğer makinalardan farklı olarak yönlendirici hem 144.122.1.0 ağı, hem de 144.122.71.0 ağı üzerindeki adreslere direk ulaşabilmektedir. Diğer adreslere ulaşabilmek için benzer bir yöntem ile 144.122.1.0 ağı üzerindeki arayola (gateway) yönlendirme yapılır.


route add default gw 144.122.1.200 dev eth1

Bu çeşit yönlendirmeye statik yönlendirme adı verilir. Burada tüm bağlantılar bir tablo halinde verilmiştir. Birbiri arkasına ağ eklendiği zaman statik yönlendirme basitlik avantajını kaybetmeye başlar. Bu amaçla yönlendiricilerin kendi aralarında bildikleri yolları (yönlendirme bilgilerini) birbirlerine aktardıkları dinamik yönlendirme kullanılır.

Ağa bağlanmak amacıyla birden fazla kart kullanıyorsanız, arp komutunu incelemenizi tavsiye ederim. Bu komut pekçok opsiyon alır ve sistem yöneticisinin Linux üzerindeki ağı kontrolünü kolaylaştırır.


# arp -a IP address HW type HW address 191.72.1.3 10Mbps Ethernet 00:00:C0:5A:42:C1 191.72.1.2 10Mbps Ethernet 00:00:C0:90:B3:42 191.72.2.4 10Mbps Ethernet 00:00:C0:04:69:AA

Logged

Rock & Metal Müzik: Linkleri Sadece Üyelerimiz Görebilir.  Üye Ol veya Giriş Yap
http://www.foreverrock.net
« Yanıtla #14 : 22 Haziran 2006, 16:10:25 »
[DooMsDaY]
Administrator
*



Rep: 65535
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 2865
288317.00 Forum Lirası

Extra Listesi
Üyeye para gönder

Üyelik Bilgileri WWW

Birden Fazla Ethernet Kartının Tanıtılması

Yukarıda örneğini verdiğimiz Linux yönlendirici üzerinde iki ethernet kartı bulunuyor. Bu sayede Linux makinası iki ethernet ağı arasında bir yönlendirici olarak kullanılabilmektedir. Bir Linux'a birden fazla ethernet kartı takmak mümkündür. Bu kartları takarken aşağıdaki maddelere dikkat etmek gerekir:



Çekirdek içerisinde her iki kart için destek bulunmalıdır.
Ethernet kartları sistemdeki diğer IO ve IRQ ayarlarını çakışmayacak şekilde ve farklı değerlerde olmalıdır.

Birden fazla ethernet kartı (ya da gibi herhangi iki veya daha fazla PPP, SLIP gibi ağ bağlantısı) olan makina bir yönlendirici olarak kullanılacaksa, çekirdek IP FORWARDING desteğiyle derlenmelidir. Bunun yanı sıra Linux'unuzun birinci görevi yönlendiricilik olacaksa optimize as router sorusuna da `y' yanıtı vermeniz yararlı olacaktır.


IP: forwarding/gatewaying (CONFIG_IP_FORWARD) [N/y/?] y...IP: optimize as router not host (CONFIG_IP_ROUTER) [N/y/?] y

Linux açılırken çekirdek tanıdığı donanımları teker teker arayarak bulmaya çalışır (probing). Birden fazla ethernet kartı kullanımına sık raslanmadığından Linux ilk ethernet kartını bulduktan sonra ikinci ve daha fazla ethernet kartı aramadığından iki kartınız bile olsa Linux sadece birini görecektir. Çekirdeğe ethernet kartı ile ilgili parametreler vererek birden fazla ethernet kartının açılışta bulunması sağlanabilir. LILO kullanıldığı zaman /etc/lilo.conf içinde


append="ether=0,0,eth1"

Yukarıdaki paramatre ile çekirdek ikinci bir ethernet kartını (eth1) da arayacaktır. Ayni şekilde arka arkaya ether=.... parametreleri vererek varsa üçüncü, dördüncü ve daha fazla ethernet kartının aratılması da mümkündür. Ethernet kartlarınızın adreslerini biliyorsanız, kartların yanlış sırayla bulunması tehlikesini de önlemek için,





append="ether=5,0x340,eth0 ether=15,0x300,eth1"

gibi bir satır eklenmesi yeterli olacaktır. Burada eth0 isimli bağlantı IRQ 5 ve IOBASE 0x340 ve diğer ethernet bağlantısı eth1 IRQ 15 ve IOBASE 0x300 olacak şekilde ayarlanır, bu durumda çekirdek bir daha kartların hangi adres ve IRQ'da olduğuna dair tahmin yürütmez, girilen değerlerde bulunan kartları bulmaya çalışır.

Sistem açıldıktan sonra gerçekten istenen kartların istenen adreste çalıştığına emin olmak için /var/adm/messages dosyasına bakabilirsiniz, ya da dmesg komutuyla çekirdek mesajlarını görebilirsiniz.

8.6 NFS

NFS (Network File System), bir ağ üzerinden disklerin paylaşımını sağlamak üzere geliştirilmiştir. NFS sayesinde bir makinada yeralan belirli bir disk bölümü, başka makinalar tarafından okunabilir veya yazılabilir. Bu işleme özellikle büyük organizasyonlarda, disk alanından tasarruf etmek için başvurulur. Her makinada aynı dosyalar, çalıştırılabilir programlar olması yerine bunlar tek sunucuda toplanır, diğer bilgisayarlar bu alanı ortaklaşa paylaşırlar. Paylaşılan dizin, sanki yerel makinanın bir diziniymiş gibi davranır. Kendi disk alanını paylaştıran makinaya NFS sunucusu, bu diske erişim yapan makinalara da NFS istemcisi adı verilir.

NFS kullanımının pek çok avantajı sayılabilir. Bunlar kısaca:



Yerel bir işletmede tüm kullanıcılar tek bilgisayar üzerindeki aynı disk alanını paylaşabilirler. Diğer bilgisayarlar açıldıktan sonra bu diskleri kendi dosya sisteminlerine bindirebilirler. NFS'in NIS ile birlikte kullanımı sayesinde bir kullanıcı herhangi bir makinaya girip diğer kullanıcılarla birlikte aynı dosya yapısı ile çalışabilir.
Paylaşım sayesinde büyük disk alanı isteyen programlar tek bir sunucuda toplanabilir ve bu sayede önemli miktarda diskten tasarruf sağlanabilir.
Bir makina üzerinde yapılan değişiklik, her makinada yapılmış gibi olur. Böylece aynı yazılımı örneğin 20 bilgisayara yüklemek zorunda kalmazsınız.

Ağ Üzerinde Paylaşım

NFS'in çalışması, yerel bir diskin mount edilmesi kadar kolaydır. Örnek olarak NFS sunucusu olan aspendos makinasında yeralan /home dizinini, yerel makinadaki /users dizinine yerleştirmek için :


# mount -t nfs aspendos:/home /users

kullanılır. mount, karşı makinanın erişim izinleri doğru olduğunu teyit ettiği anda bu işlemi gerçekleştirir. Sunucu ile istemci arasındaki mesaj alış-verişini mountd programı üstlenir.

NFS kullanabilmek için çekirdekte NFS desteği olması şarttır. Çekirdeğin hangi dosya sistemlerini desteklediğini /proc dosya sistemi altındaki filesystems dosyasını okuyarak anlayabilmek mümkündür. Eğer aşağıdaki satırlarda nfs kelimesi geçmiyorsa çekirdeğe NFS desteği verilerek tekrar derlenmesi gerekir.


$ cat /proc/filesystems minix ext2 msdosnodev procnodev nfs

NFS için mount programının genel kullanımı şu şekildedir :



mount -t nfs -o

Sistem açılırken /etc/fstab dosyasında yeralan bilgilerle uzak makinanın diski otomatik olarak paylaştırılabilir. Mount programı bazı seçenekleri destekler. Bu seçenekler -o yardımıyla komut satırında verilebildiği gibi /etc/fstab içinde de belirtilebilir. Her iki durumda da birden fazla seçenek kullanılırsa bunlar birbirlerinden virgülle ayrılırlar.

Açılış sırasında news makinasındaki /usr/spool/news dosyasını yerel makinadaki /usr/spool/news dizini altına yerleştiren /etc/fstab satırı


news:/usr/spool/news /usr/spool/news nfs timeo=20

şeklinde yazılır. NFS ile kullanılan timeo seçeneğinin karşısında yeralan sayı (saniyenin onda biri olarak), bağlantının kurulabilmesi için geçecek maksimum zamanı gösterir. Bu zamanın aşılması halinde sunucuyla bağlantı kesilir.

NFS Kurulumu

Yerel makinanın sunucu olabilmesi için nfsd ve mountd programlarının çalıştırılması gerekir. Bu yazılımlar açılış esnasında aşağıda görülen /etc/rc.d/rc.inet2 dosyasından başlatılırlar. telnetd, fingerd ve benzeri süreçlerin aksine bu iki program inetd tarafından yönetilmezler. Dikkat etmeniz gereken bir durum da nfsd ve mountd programlarının rpc.portmap programından sonra çalıştırılması gerektiğidir :


if [ -x /usr/sbin/rpc.mountd ]; then # (rpc.mountd programi var ve calistirilabilir mi ?) /usr/sbin/rpc.mountd; echo -n " mountd" fiif [ -x /usr/sbin/rpc.nfsd ]; then # (rpc.nfsd programi var ve calistirilabilir mi ?) /usr/sbin/rpc.nfsd; echo -n " nfsd"fi

Sunucunun hangi dizinlerini, hangi istemci(ler) tarafından paylaşılabileceği /etc/exports dosyasında belirtilir. Örnek bir exports dosyasının görünümü aşağıdaki gibidir :





/home davul.cclub.metu.edu.tr, ordek.cclub.metu.edu.tr/usr/ftp (ro)/cdrom *.edu.tr

Her satır, yerel makinadaki dizin ismi ile başlar, bu dizini mount etmeye izin verilen bilgisayar isimleri ile devam eder. Makina isimlerinde ? veya * joker karakterleri kullanılabilir. Dosyanın üçüncü satırı, sonu .edu.tr ile biten tüm makinaların /cdrom dizinine ulaşabileceğini belirtir.

Aynı dizini paylaşacak birden fazla makina adı, aralarında virül konarak yazılabilir. Parantez içinde yeralan ro kelimesi, dizinlerin salt okunur mount edilmesi gerektiğini belirtir.

Daha geniş bilgi için mount programının man dosyasına göz atmanızı tavsiye ederim.

8.7 Uzaktan Bağlantı Kurulması

İnternet üzerinde kesinlikle yanlız olmadığınıza göre, kimi durumlarda kendi Linux'unuz dışındaki sistemlere girmek isteyeceksiniz. Bunun için uyarlanmış çeşitli komutlar mevcuttur. Bu komutlar sadece bağlanmak için değil, iki makina arasında birtakım dosya transferi gerçekleştirmek için de kullanılabilir.

Linux (ve UNIX) için ağ uygulamalarında kullanılmak üzere geliştirilen temel olarak iki sistem vardır. Bunlardan UUCP (Unix to Unix CoPy), genel olarak iki makina arasında bir kere bağlantı kurup veriyi iletir ve bağlantıyı kapatır. Eski bir protokol olan UUCP, genellikle modemler arası veri iletişiminde işe yarar.

TCP/IP ise daha önce de belirtildiği gibi yerel ağ veya İnternet üzerinde rahatlıkla kullanılabilen bir protokoldür. TCP / IP 'nin uzaktan bağlantı komutları "r" harfi ile başlar. Örneğin rlogin (remote login) bir sistemden diğerine telnet bağlantısı yaparken rcp (remote copy) ise bir makinadan diğerine dosya kopyalar. Bu ve buna benzer uzaktan bağlantı komutları iyi bilmeniz size çalışmalarınız sırasında zaman kazandıracaktır.

"r" komutlarını kullanabilmeniz için kesinlikle TCP/IP protokolünü tanıyan bir ağ (PPP, Ethernet, SLIP gibi) üzerinde olmalısınız.

rlogin : Geçerli bir hesabınızın olduğu makinaya girmenizi sağlar. telnet komutuyla benzerlik gösterir. Ayrıldıkları nokta, karşıdaki sisteme girerken gerekli konfigürasyonlar yapılırsa şifre sormamasıdır. Bu kısma ileride değineceğim.

Aşağıdaki komut ile ordek isimli makinaya giriş yapılıyor.


$ rlogin ordek

Eğer yukarıdaki gibi yazarsanız, ordek makinasına ait IP numarası veya bu adresin tam isminin, örneğin ordek.cclub.metu.edu.tr/etc/hosts dosyasında yeraldığına emin olmanız gerekir. Karşı makinada bağlanılacak kullanıcı ismi de komut satırından belirlenebilir.


cclub:~$ rlogin ordek -l httpdPassword: Last login: Fri Feb 21 22:02:46 from cclub.metu.edu.trLinux 2.0.27.ordek:~$

Yukarıda yaptığımız, cclub makinasından ordek isimli makinadaki httpd kullanıcısına bağlanmak oldu. Üzerinde Linux çalışan ordek makinası doğal olarak bana bu kullanıcıya ait şifreyi sordu. ordek makinasında yeralan bir dosya üzerinde değişiklik yaparak istersem şifre sorulmadan anında girilmesini sağlayabilirim. Bunu .rhosts (remote hosts) dosyası sağlar.

.rhosts dosyasında makinaya bağlanabilecek olan kullanıcılar ve bunların hangi makinalardan bağlanacaklarını gösteren bir liste vardır. Biraz karışık mı oldu ? Şu örneği inceleyelim :


ordek:~$ uname -aLinux ordek 2.0.27 #1 Sun Jan 19 13:06:08 EET 1997 i486ordek:~$ whoamihttpdordek:~$ cat ~/.rhostscclub.metu.edu.tr gorkem

Yukarıda ördek makinası üzerindeki httpd kullanıcısının çalışma dizininde bulunan .rhosts dosyasında iki sütun yeralıyor. İlki, güvenilen makinanın ismi (cclub.metu.edu.tr), ikincisi de bu makina üzerindeki güvenilen kullanıcı (gorkem). .rhosts dosyası şifrenizi başkalarına vermeden istediğiniz makinadaki bir kullanıcının hesabınızı kullanmasını sağlar. Kısaca bir satırda herhangi bir kullanıcının makina ismi ve hesap ismi bu dosyada varsa, sisteme giriş izni verilir.

Bu aşamadan sonra cclub.metu.edu.tr adresindeki gorkem kullanıcısı şifre girmeden ordek.cclub.metu.edu.tr adresindeki httpd kullanıcısı olarak çalışmak isterse yapması gereken :


cclub:~$ whoamigorkemcclub:~$ rlogin ordek.cclub.metu.edu.tr -l httpdLast login: Sun Feb 23 11:19:04 from cclub.metu.edu.trLinux 2.0.27.ordek:~$

Artık ordek makinası üzerindeyiz. Şifre girmeden bir makinadan diğerine atlamış olduk. .rhosts dosyasında eğer makina ismi yerine "+" işareti kullanılırsa her makinanın veya kullanıcı ismi yerine "+" işareti kullanılırsa her kullanıcının giriş izni olduğu anlaşılır. Makina isimleri yerine IP adreslerini de kullanabilirsiniz. Birkaç örnek :


144.122.71.55 + # (144.122.71.55 makinasi uzerindeki tum kullanicilara giris izni ver)+ murat # Butun makinalar uzerindeki murat kullanicilarina giris izni ver. # (Cok buyuk bir guvenlik acigi)

rsh : Bazı durumlarda çalıştığınız makinada dışındaki bir sistemde bir veya birkaç kısa komut çalıştırmak isteyebilirsiniz. Örneğin karşı sistemde kimler, hangi işleri yapıyor veya çalışma dizininde yeralan dosyaları görmek gibi. Bütün bunlar telnet veya rlogin programına gerek duymadan rsh (remote shell) ile yapılabilir. Tek şart, üzerinde komut işletilecek makinadaki .rhosts dosyasında gerekli makina ve kullanıcı ismi girişi olmasıdır.

Diyelim ki davul.cclub.metu.edu.tr makinası üzerindeki /home/gorkem dizininde yeralan tüm dizin ve dosyaları görmek için :


$ rsh davul.cclub.metu.edu.tr ls -al /home/gorkem

komutunu girmelisiniz. rsh komutundan sonra uzaktaki sistemin ismi, ardından da çalıştırılacak olan komut gelmelidir. Diğer bir örnek



$ rsh davul.cclub.metu.edu.tr cat README | lpr

karşı sisteme giriş yapmadan README dosyasını yazıcıdan çıkmasını sağlayacaktır.

8.8 Linux'ta Örnek Ağ Uygulamaları

Aşağıda, Linux ile gerçekleştirilebilecek birkaç örnek ağ uygulamaları yeralmaktadır. Her konu ile ilgili ayrıntılı bilgileri HOWTO dosyalarından öğrenebilirsiniz.

IP Accounting

IP accounting özelliği, çekirdeğin ağ üzerindeki trafiğin analizini yapmasını sağlar. Toplanan veriler, makinanın açıldığı andan itibaren kart üzerinden geçen paket ve toplam bayt sayısıdır. Bir konfigürasyon dosyası yardımıyla bu bilgiler belirli sınıflara ayrılabilir. Çekirdeğin derlenmesi aşamasında IP accounting seçeneği kullanılmalıdır.





* Networking options...IP: accounting (CONFIG_IP_ACCT) [N/y/?] y

Çekirdeğin derlenmesinden ve makinanın yeni çekirdekle açılmasından sonra, ipfwadm komutu ile IP accounting işlemlerine başlanabilir. ipfwadm paketi standart Slackware dağıtımı ile beraber gelmektedir.

IP Aliasing

Tek ağ arabirimi (örneğin ethernet veya seri bağlantı) kartı için birden fazla IP numarası gereken durumlarda IP Aliasing kullanılır. Genellikle İnternet Servis Sağlayıcıları, müşterilerinin ftp ve www sunucularını tek makina üzerinde toplamak için bu yola başvururlar. Bu sayede bir makinaya atanmış birden fazla www adresi ve herbirinin ayrı html dosyaları farklı makinalardaymış gibi kullanılabilir.

Bu özellikten yararlanabilmek için çekirdekte IP Aliasing desteği vermelisiniz.



** Networking options...Network aliasing (CONFIG_NET_ALIAS) [N/y/?] y...IP: aliasing support (CONFIG_IP_ALIAS) [N/y/m/?] y

Her sanal ağ adresi için bir arabirim (interface) tanımlamalısınız. Bu sayede aynı bilgisayarda 255 adede kadar sanal makinaya izin verilebilir. Her sanal arabirim, bağlı bulunduğu gerçek arabirim üzerinden işgörür.

Örnek olarak, elimizde kullanabileceğimiz ikinci adres (örnek olarak 100.100.100.101) ve tek ethernet kartı bulunsun. İnternet üzerindeki diğer makinaların, bu iki adrese ulaşabilmeleri için şu satırlar yeterli olacaktır :


# ifconfig eth0:0 100.100.100.101 netmask 255.255.255.0 up# route add -net 100.100.100.0 netmask 255.255.255.0 eth0:0

Sanal bir arabirimi kaldırmak için ise, ismin sonuna '-' karakteri getirmek yeterli olur.


# ifconfig eth0:0- 0

IP Masquerading

IP Masquerading, bir ağın arkasındaki birden fazla makinanın bir Linux üzerinden dışarıya bağlanmasıdır. Tüm makinalar dışarıdan aynı IP adresi gibi görünürler.

Örnek olarak İnternet'e bağlandınız. İnternet Servis Sağlayıcınız size sadece bir IP numarası verdi ve odanızda İnternet'e bağlanmayı bekleyen birden fazla bilgisayar var. Servis Sağlayıcıya her makina için para ödeyip bir hesap ismi almaktansa odadaki tüm makinalar bir Linux ve telefon bağlantısı yardımıyla İnternet'e erişebilirler.

IP Masquerading kullanabilmek için çekirdekte bu desteğin verilmesi gerekiyor. Bunun için IP Forwarding, IP Firewalling ve IP Masquerading seçeneklerini açık tutmalısınız.

IP Masquerading için gerekli yazılımlar Slackware dağıtımı ile birlikte gelmektedir.

SAMBA (NetBEUI ve NetBios desteği)

SMB, Windows 3.11, NT ve 95 tarafından kullanılan ve disk ve yazıcı paylaşımına olanak veren bir protokoldür. Linux, Samba desteği ile bu işletim sistemleri veya kendi üzerinde bulunan disk ve yazıcıların tüm makinalar tarafından paylaşılmasını sağlar.

Samba ile 4 işlem gerçekleştirilebilir : Windows makinalarının Linux diskini paylaşmaları, Linux makinalarının Windows sistemi diskini paylaşmaları, Windows makinalarının Linux yazıcısını paylaşmaları ve Linux makinalarının Windows yazıcısını paylaşmaları.

Yine bu özelliği kullanabilmek için çekirdekte Samba desteği vermeniz gerekecektir.


SMB filesystem support (to mount WfW shares etc..) (CONFIG_SMB_FS) [Y/m/n/?]

smbfs, SMB protokolünü tanıyan dosya sistemine verilen isimdir. smbfs servisi verebilmek için smbfs.tgz paketini indirip derlemelisiniz.

smbfs.tgz paketini ftp.metu.edu.tr adresinden bulabilirsiniz.

Novell Desteği

NCP (NetWare Core Protocol), IPX üzerinde yeralan ve Novell NetWare istemcilerinin sunucularla konuşmasını sağlayan protokole verilen isimdir. Bu seçenek ile, NetWare dosya sunucularına diğer Unix makinalardaki gibi bağlanmak olasıdır.

NetWare dosya sistemlerine erişebilmek için özel bir mount programı (ncpmount/ncpumount) kullanmanız gerekecektir. Bu ve diğer programlar, ncpfs paketinin içinde vardır. Bunun için çekirdekte


The IPX protocol (CONFIG_IPX) [Y/m/n/?]

ve


NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS) [Y/m/n/?]

desteğini vermelisiniz.

lwared ve mars_nwe paketleri, Linux İşletim Sistemi'ne Novell sunucu olma özelliği verir.

Apple desteği

Aynı ağ üzerinde yeralan Apple Macintosh makinaları ile aynı disk ve yazıcıların paylaşımını sağlayan pakete netatalk ismi verilir. Bu desteği kullanabilmek için çekirdeğin derlenmesi sırasında


IP: multicasting (CONFIG_IP_MULTICAST) [Y/n/?]...The IPX protocol (CONFIG_IPX) [Y/m/n/?]...Appletalk DDP (CONFIG_ATALK) [Y/m/n/?]

parametrelerine evet cevabı vermelisiniz. Appletalk için daha fazla bilgiye ve disk ile yazıcı paylaşımı yapan pakete Linkleri Sadece Üyelerimiz Görebilir.  Üye Ol veya Giriş Yap adresinden erişebilirsiniz.

Logged

Rock & Metal Müzik: Linkleri Sadece Üyelerimiz Görebilir.  Üye Ol veya Giriş Yap
http://www.foreverrock.net
« Yanıtla #15 : 22 Haziran 2006, 16:10:50 »
[DooMsDaY]
Administrator
*



Rep: 65535
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 2865
288317.00 Forum Lirası

Extra Listesi
Üyeye para gönder

Üyelik Bilgileri WWW

8.9 NIS

NIS Network Information Service kelimelerinin baş harflerinden oluşmaktadır. Amacı bir ağ üzerindeki bütün makinalara, bütün ağ tarafından bilinmek kaydıyla bilgi akışı sağlamaktır. NIS tarafından dağıtılacak bilgiler, hesap isimleri, şifreler, kullanıcı dizinleri ve grup bilgileri olabilir.

NIS yardımıyla, örneğin size ait şifre NIS veri tabanında kayıtlı ise, ağ üzerinde NIS istemci programlarını çalıştıran bütün makinalara girebilirsiniz.

NIS'in biraz daha gelişmiş bir sürümü olan NIS+ , verileri korumak amacıyla şifreleme yöntemi kullanır. Bu avantajına rağmen NIS+ 'ın kurulumu ve kullanımı daha zordur.

NIS'in Çalışma Prensipleri

Bir ağ üzerinde en az bir makina NIS sunucusu olmak zorundadır. İster herbiri farklı NIS ``domain'' lerine hizmet eden çoklu NIS sunucularına sahip olabilirsiniz, ya da beraber çalışan NIS sunucularınız olur. Bu durumda sunuculardan biri ana NIS sunucusu, diğerleri ise ikincil (slave) NIS sunucusu olabilirler.

İkincil sunucular sadece NIS veritabanının kopyalarına sahiptirler ve bu kopyaları ana NIS sunucusunda bulunan veri tabanlarında değişiklik yapıldığı zaman ana sunucudan alırlar. Ağ üzerinde bulunan makina sayısına ve ağ güvenliğine bağlı olarak bir veya daha fazla ikincil sunucu kurulabilir. Bir NIS sunucusu kapandığında veya çok yavaş cevap verdiğinde, diğer NIS istemcileri çalışan veya daha hızlı bir sunucu bulmaya çalışacaktır.

NIS veritabanları DBM adı verilen yapıdadır ve bu yapı ASCII veritabanlarından çıkarılır. Ana NIS sunucusu hem ASCII veritabanlarını hemde DBM veritabanlarını içermelidir. NIS sunucusu, ASCII yapıdaki /etc/passwd gibi veri tabanlarını DBM veri tabanına çevirerek /var/yp dizini altında tutar.

İkincil sunucular NIS haritalarında oluşacak değişikliklerden yppush programı aracılığıyla haberdar edilecek ve veritabanlarını senkronize etmek için otomatik olarak gereken değişiklikleri alacaklardır. NIS istemcilerinin bunu yapmasına gerek yoktur çünkü sunucudaki DBM veritabanlarında bulunan bilgileri okumak için devamlı olarak NIS sunucusu ile bağlantı kurmaktadır. İkincil sunuculara gayet büyük ağlar üzerinde ihtiyaç duyulur.

NIS İstemcisi

NIS'i kurmak için herşeyden önce /usr/sbin/rpc.portmap programını çalıştırmanız gerekir. Bazı Linux dağıtımları (örneğin Slackware) bu daemon'u çalıştırmak için gereken kodu /etc/rc.d/rc.inet2 dosyasında barındırırlar.

RPC portmapper (man 8 portmap) programı bir sunucu olup RPC program numaralarını TCP/IP (veya UDP/IP) protokol port numaralarına çevirir. RPC portmapper o makina üzerinde RPC çağrılarını (NIS istemci yazılımının yaptığı iş) RPC sunucularına (NIS sunucuları gibi) yapılabilmesi için çalışıyor olmalıdır. Bir RPC sunucusu başladığı zaman, portmap'a hangi port numarasını dinlediğini ve hangi RPC program numaralarına hizmet edeceğini bildirir. Bir istemci verilen bir program numarasına RPC çağrısı yapmak istediği zaman, ilk önce sunucu makina üzerindeki portmap ile bağlantı kurarak RPC paketlerinin nereye gönderileceğini belirler.

Normal olarak, bazı RPC sunucuları inetd(Karizmatik tarafından başlatılır, bu yüzden portmap, inetd'den önce çalıştırılmalıdır.

NIS kurmadan önce, yukarıda da belirtildiği gibi iki durumu değerlendirmek zorundasınız. Ya sizin makinanız halihazırdaki NIS sunucularının bulunduğu bir ağın parçası olacaktır, ya da henüz ağınızda herhangi bir NIS sunucusu yoktur.

Birinci durumda, sadece istemci programlara (ypbind, ypwhich, ypcat, yppoll, ypmatch) ihtiyacınız vardır. En önemli program ypbind'dır. Bu programı her zaman çalıştırıyor olmalısınız. ypbind çalışır çalışmaz, makinanız bir NIS istemcisi durumuna gelir.

İkinci durumda, eğer NIS sunucularınız yoksa, bir de NIS sunucu programına (ypserv) ihtiyacınız vardır.

NIS İstemcisi Kurulması

Slackware dağıtımıyla gelen NIS yazılımını daha önce kurmamışsanız, sisteminize yükleyin. NIS istemcisi için ypbind dışındaki çalıştırılabilir dosyalar (ypwhich, yppoll, ypmatch) bütün kullanıcılar tarafından erişilebilir bir dizinde bulunmalıdır. Öncelikle yapılması gereken ypbind'ı test etmektir. Bunun için,


Domain adınızı belirlediğinizden emin olun. Bunun için,

/bin/domainname-yp nis.domain/bin/domainname-yp > /etc/defaultdomain komutunu girin. İkinci satırda, sistemde daha sonra kullanılmak üzere /etc/defaultdomain dosyasına domain adı yazılır. Yukarıdaki komutta nis.domain herhangi bir kelime olabilir.
Eğer çalışmıyorsa /usr/sbin/rpc.portmap programını çalıştırın.
/usr/sbin/ypbind programını çalıştırın.
rpcinfo -p localhost komutunu kullanarak ypbind programının portmapper'da servislerini kayıt ettirdiğini kontrol edin. rpcinfo şöyle bir çıktı üretmelidir:

program vers proto port100000 2 tcp 111 portmapper100000 2 udp 111 portmapper100007 2 udp 637 ypbind100007 2 tcp 639 ypbind300019 1 udp 660
Ayrıca rpcinfo -u localhost ypbind komutunu da çalıştırabilirsiniz. Bu komut ise şöyle bir çıktı verir:

program 100007 version 2 ready and waiting
En son olarak, makina isim taramaları (host lookup) için /etc/host.conf dosyasında lookup sırasına nis bilgisini ekleyin. Bu dosyada yeralan order satırını istediğiniz gibi düzenleyebilirsiniz. Daha fazla bilgi için resolv(Karizmatik man sayfasına bakın.

$ cat /etc/host.conforder nis, bind, hostsmulti on

Bu noktadan sonra ypcat, vb gibi NIS istemci programları kullanılabilir. Örneğin, ypcat passwd komutu bütün NIS şifre veritabanını gösterir.

Şimdi sistemde bulunan /etc/rc.d/rc.inet2 dosyasını ypbind programının sistem açılırken çalışması ve sisteminizin bir NIS istemcisi olarak görev yapması için değiştirmek gerekir. Ayrıca, /etc/rc.d/rc.inet2 dosyasını açın ve ypbind'ı çalıştıran ve domain adını belirleyen satırların başındaki # işaretini kaldırın.


# domainnameif [ -r /etc/defaultdomain ] ; thendomainname-yp `cat /etc/defaultdomain`fi# Start the ypbind daemonif [ -f ${NET}/ypbind -a -d /var/yp ]; then echo -n " ypbind" ${NET}/ypbindfi

NIS'i çalıştırmak için /etc/passwd ve /etc/group dosyalarının sonuna ``+:*:0:0:::'' satırını ekleyin. ypbind'ı öldürüp yeniden çalıştırın.

NIS Sunucusu Kurulması

NIS aracılığı ile kullanıma açık olacak dosyalardan ihtiyacınız olanların belirlenmesi gerekir. /var/yp/Makefile/ dosyasında gerekli ekleme/çıkartmaları yapın.

NIS veri tabanını aşağıdaki satırı yazarak oluşturun:


$ cd /var/yp; make

Bu programın çalıştırılmasından sonra /var/yp dizini altında NIS domain adıyla bir dizin yaratılır ve tüm veri tabanları burada tutulur. portmapper programının (rpc.portmap) çalıştığından emin olduktan sonra ypserv sunucusunu çalıştırın. rpcinfo komutu ile ypserv'in çalışmasını kontrol edin.


$ rpcinfo -u localhost ypservprogram 100004 version 2 ready and waiting

Artık sunucu çalışmaktadır.

yppasswdd Programı

NIS şifre veritabanının güvenilir olması için ``yppasswd daemon'' gereklidir. Kullanıcılar yppasswd komutu yardımıyla sunucu üzerindeki şifrelerini değiştirebilirler. yppasswd daemon (kısaca yppasswdd) bu değişikliklerin doğru bir şekilde yapılmasını ve bu şifre değiştirme sürecini kontrol eden sunucudur.

NIS'in Kontrol Edilmesi

NIS, birkaç basit komut ile kontrol edilebilir.


$ ypwhich

ypwhich NIS sunucusunun hangi makina olduğunu söyleyecektir. Bu komut ise


$ ypmatch userid passwd

(userid herhangi bir kullanıcının login adı olmak kaydıyla) size bu kullanıcının NIS şifre dosyasındaki bilgilerini verir. ypwhich ve ypmatch programları NIS dağıtımı içinde gelirler.

Bir NIS sunucusu kapandığı ve tekrar başladığı zaman ypbind aşağıdaki gibi bir mesaj ile başlayabilir:


yp_match: clnt_call:RPC: Unable to receive; errno = Connection refused

ve NIS veritabanında kayıtlı olanlar sisteme giremezler. root olarak sisteme girmeyi deneyin ve başarılı olursanız ypbind işlemini öldürüp yeniden başlatın.

« Son Düzenleme: 22 Haziran 2006, 16:12:27 Gönderen: DooMsDaY » Logged

Rock & Metal Müzik: Linkleri Sadece Üyelerimiz Görebilir.  Üye Ol veya Giriş Yap
http://www.foreverrock.net
« Yanıtla #16 : 22 Haziran 2006, 16:12:05 »
[DooMsDaY]
Administrator
*



Rep: 65535
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 2865
288317.00 Forum Lirası

Extra Listesi
Üyeye para gönder

Üyelik Bilgileri WWW

DNS (Alan İsimlendirme Sistemi)
9.1 Giriş

Bilgisayar ağlarının günümüzde oldugu kadar yaygın olmadığı dönemlerde makina, sunucu, yazıcı vb. ağ üzerindeki cihazlara ilgili nümerik adresleri ile erişmek kullanıcılar için fazla zor değildi. İnternet'in beklenenden daha hızlı büyümesiyle birlikte artan kullanıcı ve ağ üzerindeki cihazlarla birlikte nümerik isimler yerine alfanümerik hatırlanması kolay bir yapı geliştirildi. Bu yapıya Alan İsimlendirme Sistemi (Domain Name System) adı verilmektedir. Genellikle kısaltılmış şekliyle DNS olarak da kullanılmaktadır.

Alan isimleri verilirken alt isimler (subdomain) genelden özele doğru sıra izler. Örneğin, Türkiye Linux Kullanıcıları Grubu olarak ODTÜ'de yer alan kullanıcıların kullanabileceği alan adı,

metu.linux.org.tr

şeklindedir. Burda alt isim (.) ile birbirinden ayrılmıştır. En alt seviye olan 'metu' ODTÜ'de yer alan Linux kullanıcılarını, 'linux' Linux grubunu, 'org' Linux grubunun ticari kaygılar gütmeyen bir organizasyon olduğunu, 'tr' ise ISO tarafından belirlenen Türkiye'nin ülke kodudur.

En üst düzeydeki bazı alan isimleri asağıda listelenmiştir.



.com ticari kuruluşlar (commercial)
.edu üniversite düzeyindeki eğitim kurumları (educational)
.k12 lise düzeyindeki eğitim kurumları
.org ticari olmayan organizasyonlar
.mil askeri kuruluşlar (military)
.net ağ organizayonları (network)
.ülke kodu ISO tarafından belirlenen ülke kodu

9.2 TCP/IP uygulamaları ve DNS

Makinalara ait isimlerin nümerik adresleri yerine alfanümerik isimlerin kullanılmasıyla birlikte DNS standart bir hale gelmiş olup İnternet üzerindeki çoğu uygulamalarda doğrudan alan isimleri kullanılmaktadır. TCP/IP uygulamalarında ise alan isimleri günlük kullanımda IP (32-bitlik) adreslerinin yerini almış durumdadır. Örneğin, metu.linux.org.tr'a telnet bağlantısı yapabilmek için hem,





$ telnet metu.linux.org.tr

komutu





$ telnet 144.122.199.199

komutu yardımıyla ulaşabilirsiniz. Fakat herhangi bir şekilde ODTÜ'de yeralan metu.linux.org.tr sunucusunun IP adresinde değişiklik olursa yukarıdaki IP adresini kullanarak erişemezsiniz. Oysa IP adresi yerine metu.linux.org.tr sunucusuna bağlanırken alan adını kullanırsanız bu ve benzeri değişiklikler sizi etkilemez.

Şimdi kabaca herhangi bir kullanıcının metu.linux.org.tr adresine bağlanmak istediğinde gerçeklesen DNS sorgusunun nasıl işlediğini ve Türkiye'deki yapıyı da anlatacak şekilde örnekleyelim.

Örneğin, Amerika'da herhangi bir İnternet Servis Sağlayıcısı'ndan (İSS) bağlantı yapan bir kullanıcı Linkleri Sadece Üyelerimiz Görebilir.  Üye Ol veya Giriş Yap adresine bağlanmak istedi. Kullanıcının bu adresi tarayıcısına girmesinden itibaren öncelikli olarak kendi alan adı sunucusuna (name server) bu adrese karşılık gelen IP adresini bulmak için gerekli sorguyu yollayacaktır. Kendi alan adı sunucusu en üst düzeyde yer alan .tr'ı gördüğü andan itibaren bu sorguya kendinin yanıt veremeyeceğini anlayıp bir üst alan adı sunucusuna ilgili sorguyu yollacaktır. Türkiye'nin alan adı sunucusunun knidos.cc.metu.edu.tr olduğu bilgisini aldığı andan itibaren sorguyu bu kez knidos.cc.metu.edu.tr sunucusuna gönderecek ve buradan da linux.org.tr alanına ait bilgilerin metu.linux.org.tr sunucusunda tutulduğunu öğrenecek. Nihayet son sorgu metu.linux.org.tr sunucusuna yollanacak ve buradan da Linkleri Sadece Üyelerimiz Görebilir.  Üye Ol veya Giriş Yap
www.linux.org.tr
adresine karşılık gelen IP adresini öğrenecek.

9.3 BIND Konfigürasyonu

BIND, Linux dağıtımlarının hepsi ile gelen ve alan adı sorgularına yanıt veren yazılım paketidir. Açılımı Berkley Internet Domain Name şeklindedir.

Doğrudan Linux kurulu olan bir sunucu üzerindeki BIND konfigürasyonuna geçmeden DNS ile ilgili temel birkaç konudan bahsetmekte fayda var. DNS ile ilgili yazılımları istemci ve sunucu olarak ikiye ayırmak daha doğru olur:

Sunucu, istemciden gelen sorgulara yanıt veren ve sürekli çalışan bir işlem olup BIND paketinden çıkan named yazılımı bu işi görür. İstemcilerse Linux dağıtımlarıyla gelen host, nslookup vb. programlar olup sorguyu yapan yazılımlardır. Bununla birlikte BIND konfigürasyonunda sıklıkla karşımıza çıkacak olan birkaç kavram aşağıda açıklanmaktadır. Yeri geldikçe diğer kavramlara da değinilecektir.



primary name server
O alana ait bütün bilgilerin bulunacağı sunucu olup bu amaçla konfigüre edilmiş sunucudur. ``primary name server'' bir alan için ancak bir tane olabilir. ``primary name server'' tanımlarken, named.hosts, named.boot, named.rev ve named.cache gibi dosyalara ihtiyaç vardır.

secondary name server
O alana ait veritabanındaki bilgileri ``primary name server'' dan belirli aralıklarla alan sunucudur. Belirli aralıklarla transfer edilen bu dosyalara zone-file adı verilir. ``primary name server'' dan alınabilecek yanıtların aynısı ``secondary name server'' dan da doğru şekilde alınabilir.

caching only name server
Bu şekilde konfigüre edilen DNS sunucuları yapılan sorguları ``cache'' de tutup bir sonraki sorgu için bir önceki aynı sorguya alınan yanıt kullanılır. Bir çok DNS sunucusu bu şeklide konfigüre ediliyor olmasına rağmen ``caching only'' sunucular her zaman sorgulara doğru yanıt vermeyebilir.



BIND paketi bütün Linux dağıtımları ile gelir. BIND'ın yeni versiyonuna ihtiyaç duyduğunuzda ftp.metu.edu.tr adresinden paketi transfer edebilirsiniz. Gerekli kurulumları yaptığınızda /usr/sbin dizini altına named binary dosyasını koyacaktır.

named konfigürasyonu ile ilgili dosya