Samba

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 267

Samba

Linux ile Windows'un Uyumu

Mustafa Başer
Görkem Çetin
Önsöz
Linux, kullanıcılarıyla buluştuğu 1991 yılından beri çok büyük bir atılım göstermiş,
2000 yılına girerken dünya çapında 20 milyona yakın kullanıcısı ile en çok kullanılan
işletim sistemleri arasına girmiştir.
Aslında ücretsiz dağıtılan, herhangi bir firmanın malı olmayan Linux'un bu başarıyı
yakalamasını tesadüf olarak kabul etmemek gerekiyor. Linux'un açık, evrensel
gelişimi, arkasında yatan felsefesi, bu işletim sistemini paylaşmaya her an açık
kullanıcıların gözbebeği haline getiriyor.
Türkiye'de de durum farklı değil. Okullarda, üniversitelerde, kamuda Linux
kullanılıyor. Özellikle ınternet servisinin yoğun olarak verildiği noktalarda,
üniversitelerde ve ınternet servis sağlayıcılarında Linux, diğer işletim sistemlerine
göre ciddi bir alternatif oluşturdu. Pazar payını da gün geçtikçe artıran Linux'un
gelecekte yaygın olarak evlerde kullanılmasına kesin gözüyle bakıyoruz.
Bu kitap, Linux'un en seçkin servislerinden birisini, Samba'yı, özellikle
parametreleriyle, bir referans kitabı şeklinde anlatıyor. Linux, Samba ve SMB servisi
yardımıyla kolayca ağ üzerindeki diğer makinalarla (Windows ve Linux) yazıcı ve
dosya paylaşımı yapabilme yeteneğine sahip. Bu sayede kullanıcılar, bağlantı
yaptıkları sistemin Linux olduğunu bile anlamadan diledikleri kaynaklara
ulaşabiliyorlar.
Samba yardımıyla Linux, küçük ve orta ölçekli bir işletmenin (hatta bir okulun, ya da
üniversitenin) ihtiyaç duyabileceği tüm dosya paylaşımını yapabiliyor. Bunun
yanında, WINS sunucu, WINS için DHCP proxy ve alan denetçi olarak da
kullanılabilir. Samba, bir Windows NT sunucunun verdiği tüm servisleri, daha hızlı,
güvenilir ve belki de daha ilginci, ücretsiz verebilir. Samba sadece Linux değil, OS/2
ve belli başlı UNIX'lerin tamamında çalışabilir.
Bizler kitabı Linux altında yazdık. Kaynak olarak Samba'nın kılavuz (man) sayfaları,
samba.org sitesini ve 1 yılımızı kullandık. Metin düzenleyici olarak Star Office 5.1 for
Linux paketini seçtik. Star Office'in özgün özellikleri, bu programı Linux altında kitap
yazarken kullanmamız için bize ilham kaynağı oldu.

Kitabın dili hakkında bazı noktalara dikkat çekmek istiyoruz. Komutları, koyu
yazıtipi ile belirttik. Dosya ve dizin isimlerinde italik, ekran çıktıları ve dosya
içeriklerinde ise daktilo yazıtipi kullanıldı.
Bu referans kitabını her Linux kullanıcısının faydalı bulacağını ümit ediyoruz. Kitap
hakkındaki yapıcı eleştiri ve önerilerinizi, aşağıda yeralan e-posta adreslerine
göndermenizi bekliyoruz.
Sevgi, saygı, Linux

Mustafa Başer <mbaser@ibu.edu.tr>


Görkem Çetin <gorkem@gelecek.com.tr>
Gelecek A.Ş
İçindekiler
Table of Contents

Kitap Hakkında..........................................................................................9

Birinci Kısım:
Giriş ve Ön Bilgiler..............................................................................1
1. Samba'nın Tarihçesi...............................................................................3
Andrew, programcılık bilgisini geliştiriyor .....................................................................4
Fikirler zenginleşince... ........................................................................
........................4
Samba'nın doğuşu........................................................................................................5
2. Samba Nedir?.........................................................................................7
3. SMB Nedir?............................................................................................9
SMB...................................................................................................................
...........9
NetBIOS isimleri..................................................................................................... .....10
SMB Protokolü Türevleri...................................................................... .......................11
Güvenlik:....................................................................................................................12
Ağın Taranması.................................................................................................... .......13
CIFS......................................................................................................................
......13
SMB Değişimine bir Örnek................................................................................. .........13
4. Samba'nın Kurulumu............................................................................15
Adım Adım Samba'nın Kurulması...............................................................................15
1. Adım : Kaynak programı indirin ve açın. ...........................................................15
2. Adım: Samba'yı derleyin................................................................................
.....17
3. Adım: Samba'yı sisteme kurun........................................................................ ...17
RPM Tabanlı Sistemlerde?..................................................................................
....18

İkinci Kısım:
Samba Yapılandırma Seçenekleri....................................................19
5. Samba Genel Yapılandırma Seçenekleri.................................................21
smb.conf Dosyasının Yapısı........................................................................................ .21
Makrolar.................................................................................................
....................22
Özel Bölümler..............................................................................................................23
[global] Bölümü............................................................................................. .........24
[homes] Bölümü......................................................................................... ............24
[printers] Bölümü........................................................................................... ........25
Yapılandırma Dosyası Seçenekleri...................................................................... .........25
Tarama Seçenekleri............................................................................................. ........26
İsmlendirme.............................................................................................. .............27
NetBIOS ısmini Belirtme...................................................................................27
Çalışma Grubunu Belirtme...............................................................................27
Sunucu Açıklama Satırı................................................................... .................28
Tarama Listesine Hizmetleri Elle Eklemek.........................................................28
Öntanımlı Hizmeti Belirtme....................................................................... ........28
Tarayıcı Seçimini Etkileme..................................................................... ................29
Samba'nın Ana Tarayıcı Olma şansını Etkilemek..............................................29
Tarayıcı Seçimini Etkileme......................................................................... .................29
Samba'nın Ana Tarayıcı Olma şansını Artırma.......................................................29
Alt Ağlar Arası Taramayı Gerçekleştirme................................................................31
Samba'nın WINS Sunucusu Olarak Kullanılması...................................................32
Eski İstemcilerden Gelen İstekleri Cevaplamak üzere Samba'nın Proxy Olarak
Kullanılması...................................................................................................... .....33

iii
İçindekiler

DNS Kullanarak WINS Sorgularını Çözümleme......................................................33


Duyurulan Tarayıcı Tipi ve Sürümünü Değiştirme.................................................34
Ağ Seçenekleri.......................................................................................................
......35
Ağ Arayüzünün Yapılandırılması................................................................... .........35
Birden Fazla Ağ Kartı ıle Çalışmak....................................................................35
En Yüksek SMB Protokol Uzantısını Tanımlama...............................................36
En Yüksek SMB Paket Büyüklüğünü Tanımlama.............................................37
Ağ Performansını Artırma................................................................................ .......37
Ham Okuma (raw read) ve Yazma (raw write) Desteği........................................37
ıstemcinin Cevap Vermediğini Belirleme............................................................38
Aylak ıstemcileri Dışlamak.................................................................... ............38
Kullanıcıların Doğrulanması.......................................................................................39
Kullanıcı/parola Onay Süreci.......................................................................... .......39
Paylaşım Düzeyi Onayı.................................................................................... ..40
Kullanıcı Düzeyi Onayı................................................................................ ......40
Kullanıcı Onayı Teknikleri.................................................................................. .........42
Şifrelenmiş (encrypt) Parolaları Kullanmak............................................................42
Doğal UNIX Kullanıcısını Kullanarak Onay............................................................43
Windows NT'de Düz Metin parola Onayının Gerçekleştirilmesi..........................43
Windows 95/98'de Düz Metin parola Onayının Gerçekleştirilmesi....................44
Tek Tip Harflerden Oluşan Parolaları Gönderen ıstemcilerle Çalışmak...................44
Büyük ve Küçük Harflerden Oluşan Kullanıcı ısimleri ile Çalışmak.......................45
Şifrelenmiş ("Encrypt" Edilmiş) Yerel Parolalar ile Onay.........................................45
Samba Password Dosyası............................................................................. .....46
Parolaların Onayı ıçin Başka bir SMB Sunucusunun Kullanılması........................47
Windows Kullanıcı ısimleri ile UNIX Kullanıcı ısimlerinin Eşlenmesi.................48
Windows 95 Ağ Girişlerinin Gerçekleştirilmesi.......................................................49
Samba Sunucusunun Windows 95'ler için Alan Denetçisi Olması.....................49
Windows 95'lerde Gezici Profillerin Sağlanması.................................................49
Windows 95'lere Giriş Betiklerinin Sağlanması.................................................49
Parola ile ılgili Diğer Parametreler..........................................................................50
Kullanıcılara Parola Sorulmadan Bağlantıya ızin Verilmesi...............................50
Yerel Parolayı Değiştirecek Olan Programı Belirtme...........................................50
Kayıt Davranışlarını Belirtme.................................................................... ..................51
Kayıt Dosyasının Yerini Belirtme............................................................................51
Kayıt Dosyasının Büyüklüğünü Belirtme...............................................................52
Hata Ayıklama Düzeyini Belirtme.................................................................. .........52
Sistem Kayıtlarına (syslog) Giriş Mesajları...................................................................53
Değişik ıstemci Karakterleri ile Çalışmak....................................................................54
NIS Kullanarak Kullanıcıların Ev Dizinlerinin Belirlenmesi.........................................55
Diske Erişme Zamanının ıyileştirilmesi.......................................................................56
getwd() Çağrılarının Kayıtlarının Tutulması............................................................56
Ağ ve Disk Okuma Yazma Süreçlerinin Eşlenmesi.................................................56
Bir Sonraki SMB ışlemi için Samba'nın hazırlanması.............................................57
Diğer Seçenekler..................................................................................
.......................57
Diskin En Büyük Boyutunu Belirtilmesi................................................................57
ıstemciye Kullanıcının Gerçek ısminin Sağlanması.................................................57
Kilit Dosyası ıçin Başka bir Dizinin Belirtilmesi......................................................58
Genel Yazıcı Hizmetleri Seçenekleri.............................................................................58
Yazıcı Hizmetlerinin Otomatik Olarak Yapılandırılması..........................................58
printcap Dosyasının Yerinin Belirtilmesi................................................................59
Yazıcı Kuyruğu Kayıt Süresinin Belirtilmesi...........................................................59
Windows 95 Yazıcı Sürücüsünün Yerinin Belirtilmesi............................................60

iv
İçindekiler

Diğer Bazı Seçenekler............................................................................................


......60
Bağlantı Durumu Dosyasını ıptal Etme..................................................................60
Ana Dizinin Değiştirilmesi........................................................................... ...........60
WinPopup Mesajları............................................................................ ...................61
smbrun Programının Yerinin Değiştirilmesi............................................................62
Samba'yı Zaman Sunucusu Olarak Kullanmak......................................................62
6. Samba Hizmet Yapılandırma Seçenekleri...............................................63
Hizmet Yapılandırma Seçenekleri................................................................................63
Paylaşılan Dizinin Belirlenmesi..............................................................................63
Ağ Tarayıcısındaki Görüntünün Denetlenmesi.......................................................64
Erişim Denetimi.....................................................................................
................64
Kullanıcılara Erişim Hakkı Tanınması...............................................................70
Misafir Erişiminin Denetlenmesi.......................................................................71
Bir Hizmetin Etkisiz Kılınması......................................................................... ..71
Bir Hizmete Bağlanacak ıstemci Sayısını Sınırlama...........................................71
Hizmetlere Erişildiğinde ve erişimin koparıldığında betiklerin çalıştırılması.....72
Dosya Alanı Hizmetleri................................................................................
................73
UNIX Dosya Sisteminin Paylaştırılması..................................................................73
Oylum (volume) ısminin Belirtilmesi..................................................................73
Paylaşımın ıstemcilerden Gizlenmesi.................................................................73
Kısayol Bağlantılarının Denetimi.......................................................................74
Okuma ve Yazma Haklarının Denetimi..............................................................75
Yönetici Erişim Hakları................................................................. ....................76
EUID (Effective UserID) Ayarlarının Yapılması...................................................76
Dosya ızinlerinin Denetlenmesi.........................................................................77
DOS ve Linux Dosya ısimleri.................................................................... ..............78
Harf Büyüklüğünün Uyarlanması.....................................................................79
DOS Erişim Haklarının UNIX'e Uyarlanması.....................................................80
Hidden, System ve Archive Özelliklerinin Linux'ta Tanımlanması......................81
Dosya Kilitleme...............................................................................
..................82
1. bayt-range file locking..............................................................82
2. Deny modes..........................................................
...................83
3. Opportunistic Locking..............................................................83
Yazıcı Hizmetleri.....................................................................................................
.....84
Yerel Yazıcı Komutlarının Tanımlanması...........................................................85

Üçüncü Kısım:
Yapılandırma Örnekleri ve Çözümler...............................................89
7. Sıkça Sorulan Sorular...........................................................................91
Samba'yı Nereden Bulabilirim?.........................................................................91
Samba Sürüm Numaraları Ne Anlama Geliyor?.................................................91
ınternet'teki Samba Kaynakları.........................................................................92
Samba'ya Erişmek ıstedğimde IPC$ şifresi Soruyor ve Bağlantı Kuramıyorum.. 93
Samba Sunucuyu Tarama Listesinde Göremiyorum!.........................................94
Sunucu Üzerindeki Dosya ısimlerinde Garip karakterler Var. ..........................94
"cannot locate specified computer" Hatası.........................................................94
"cannot locate specified share name" hatası......................................................95

v
İçindekiler

8. Samba Sunucusunun Hızının Artırılması...............................................97


Karşılaştırmalar..........................................................................................................97
Fırsat Kilitlemesi (Oplock)...........................................................................................98
Soket Seçenekleri........................................................................................... .............98
Okuma Büyüklüğü (Read Size)................................................................................ ....98
max xmit.............................................................................................................
........99
Kilitleme (Locking).......................................................................................................99
Paylaşım Tarzları.........................................................................................................99
Hata Ayıklama Düzeyi.................................................................................. .............100
Geniş Bağlantılar (wide links)............................................................................. .......100
Ham Okuma (read raw).............................................................................. ...............100
Ham Yazma (write raw)............................................................................................ ..100
Okuma Tahmini............................................................................................ ............101
Bellek Eşleme (memory mapping).................................................................... ..........101
Yavaş ıstemciler........................................................................................................101
Yavaş Girişler...................................................................................................
.........101
İstemci Ayarları...........................................................................................
..............102
9. Yazıcı Sorunlarının Giderilmesi...........................................................103
"testprns" ile yazıcıların denetimi..............................................................................105
Windows 95 Makinalarına Yazıcı Sürücülerini Paylaştırmak.....................................106
Linux'tan SMB Yazıcılarına Çıktı Gönderilmesi.........................................................109
10. Samba 2.0 ile NT Alanınına Katılmak................................................113
11. NT Alanı ile ilgili Sıkça Sorulan Sorular.............................................117
1.1 Samba'nın Ana Alan Denetçisi (AAD=PDC) desteğinin olup olmadığını nasıl
anlarım? şu anda bu konuda Samba ne gibi fonksiyonları yerine getiriyor?....117
2.1 Samba'yı NT'lere Alan Denetçisi yapmak için kodu nereden indirebilirim?......
118
2.2 NT Workstation/Server istemcilerini Samba tarafından denetlenen alana
nasıl sokarım?..................................................................... ...........................118
2.3 Alana katılmak istediğimde "The machine account for this computer either
does not exist or is not accessible." (Bu makina için bir hesap yok veya
erişilebilir değil) mesajı alıyorum.....................................................................120
2.4 Samba'nın denetlendiği alana katıldım fakat giremiyorum (login)..............120
2.5 NTDOM kodunda yazıcı kuyruğu (\PIPE\spools) desteği ne durumdadır?.121
2.6 Devamlı olarak "trust account xxx should be in
DOMAIN_GROUP_RID_USERS." mesajını alıyorum. Ne yapmalıyım?...............121
2.7 Alana başarılı bir şekilde katılabiliyorum, fakat Samba'nın yeni sürümünü
yükledikten sonra, giriş yapmaya çalışırken "The system can not log you on
(C000019B), Please try again or consult your system administrator" mesajını
alıyorum...............................................................................
..........................121
3.1 Alana giriş süreçlerini test edebileceğim araçlar var mıdır?.......................121
3.2. "Network Monitor" programını Windows NT veya Windows 9x makinalarına
nasıl yüklerim?.......................................................................... .....................122
4.1.1 smb.conf dosyasında giriş dizinini "logon path = \\%N\%U\profile"
şeklinde yapılandırmanın sakıncası nedir?.....................................................122
4.1.2 Alan yöneticisi kullanıcıları niçin aynı "profile" dosyasını kullanır?........123
4.2.1 Komut satırından, alan hesabını kullanmaya çalışan bir aracı
çalıştırdığımda, "'No mapping between usernames and ID's was done" (Kullanıcı
ismi ve ID'si arasında bir eşleme yok) mesajını alıyorum.................................123
4.2.2. Alan hesapları ve grupları kullanmak istiyorum fakat çalışmıyor..........123
4.2.4 Roaming (gezici) profiller, sunucu üzerinde güncellenmemiş gibi

vi
İçindekiler

görünüyor........................................................................................
...............123
4.3.1. Bir kullanıcı hesabını "alan yöneticisi" olarak nasıl tanımlarım?...........124
4.3.2 Sistem politikalarını çalıştıramıyorum....................................................125
4.4.1 Uzaktan parola değiştirmenin (UNIX ve Samba) çalışabilmesi için ne
yapmalıyım?.................................................................................................
...125
5.1 Samba kullandığıma göre NT Server CD'si almak zorunda değilim. Bu
durumda "User Manager for Domains", "Server Manager" ve "Windows NT Policy
Editor" araçlarını nasıl edineceğim?................................................................126
6.1 Samba'yı bir NT alanı üyesi (AAD olarak değil) nasıl yaparım?..................126
12. Ağ Girişleri ve Gezici Profiller...........................................................129
Alan Girişleri...................................................................................................
..........130
Örnek bir Giriş Betiği.......................................................................... ............131
Gezici Kullanıcı Profillerini Kurmak.................................................................... .......132
Windows 95 ve 98............................................................................... .................132
Windows NT Workstation 4.0...............................................................................136
Windows NT Server......................................................................... .....................136
13. Samba'da Tarama..............................................................................139
Genel Bakış...........................................................................................................
....139
Tarama...........................................................................................
..........................139
Alt Ağlarda Tarama............................................................................... ....................141
Alt Ağlar Arası Tarama Nasıl Çalışır?................................................................... .141
WINS Sunucusunun Kurulumu................................................................................145
"Çalışma Gurubu"nda (WORKGROUP) Taramanın Kurulumu..............................147
Alan ıçerisinde Taramanın Kurulması.......................................................................148
Samba Sunucusunu Yerel Ana Tarayıcı (YAT) Olmaya Zorlamak..........................149
Samba Sunucusunu Ana Ana Tarayıcı (AAT) Olmaya Zorlamak...........................150
Yayın (broadcast) Adresleri ile ılgili Birkaç Not..........................................................151
Çoklu Arayüzler.............................................................................. ..........................151
DNS Proxy...........................................................................................................
......151
14. Şifrelenmiş Parolalar.........................................................................153
Nasıl Çalışıyor?.................................................................................
........................153
Güvenliğe Ait Birkaç Önemli Not...............................................................................154
Karşılaştırmalar....................................................................................
....................155
SMB şifreleme Tekniğinin Getirileri......................................................................155
Düz-Metin Parola Tekniğinin Getirileri.................................................................155
smbpasswd Dosyası................................................................................ ..................155
smbpasswd Komutu............................................................................................ ......157

Dördüncü Kısım:
Samba Programları ve Dosyaları....................................................159
15. smbd: Smb Hizmetleri.......................................................................161
Kullanımı...............................................................................................
...................161
Tanımı.......................................................................................................................
161
Seçenekler.............................................................................................................
....162
Sunucuyu ıstek Geldiğinde Çalıştırmak....................................................................163
16. nmbd: NetBIOS ısim Sunucusu..........................................................165
Kullanımı...............................................................................................
...................166
Seçenekler.............................................................................................................
....166
17. smbstatus: Samba'nın Durumunu Öğrenin.........................................169
Kullanımı...............................................................................................
...................169

vii
İçindekiler

Seçenekler.............................................................................................................
....169
Örnek....................................................................................................................
....170
KDE Samba Status............................................................................. ......................170
Hizmete Yapılan Bağlantının Kesilmesi................................................................171
18. smbclient: Linux/UNIX için SMB ıstemcisi.........................................173
Kullanımı...............................................................................................
...................173
Seçenekler.............................................................................................................
....173
Bağlantıdan Sonra................................................................................ ....................180
gnomba.........................................................................................................
............184
19. smbpasswd: Samba Parola ışlemleri...................................................189
Kullanımı...............................................................................................
...................189
Tanımı.......................................................................................................................
189
Seçenekler.............................................................................................................
....190
20. lmhosts: Samba NetBIOS Makina ısmi Dosyası...................................195
21. nmblookup: NetBIOS ısimlerine Bakmak............................................197
Kullanımı...............................................................................................
...................197
Seçenekler.............................................................................................................
....197
22. swat: Grafik Arabirimli Yapılandırma Aracı........................................201
Kullanımı...............................................................................................
...................201
Seçenekler.............................................................................................................
....201
Kurulumu.................................................................................................................202
Çalıştırılması.....................................................................................................
........202
Nasıl Kullanacaksınız?.......................................................................... ....................203

Beşinci Kısım:
Diğer Samba Yapılandırma Araçları..............................................205
23. LinuxConf ve gnosamba....................................................................207
LinuxConf.............................................................................................
....................207
Genel Tanımlamalar..................................................................................... ........207
Kullanıcı Ev Dizinleri......................................................................................... ...209
Diğer Dosya Paylaşımları.....................................................................................210
LinuxConf Web Arayüzü.................................................................................... ...212
LinuxConf Metin Arayüzü......................................................................................... .214
gnosamba.......................................................................................
..........................215
Yeni bir Hizmetin Açılması...................................................................................218
24. bbSAT..............................................................................................223
25. smbedit............................................................................................227

Altıncı Kısım:
ıstemciler ıle Çalışmak...................................................................231
26. DOS ıstemci ile Bağlanmak...............................................................233
27. Windows 95/98 istemcileri ile Bağlanmak:........................................239
EK: Sambanın Hızlı Yapılandırılması.......................................................247
1. Adım: Samba'nın kurulumu..........................................................................
........247
2. Adım: smbd ve nmbd'nin çalıştırılması..................................................................247
3. Adım: Samba yapılandırma dosyasını kontrol edin................................................248
4. Adım: smb.conf dosyasını oluşturun.....................................................................248

viii
İçindekiler

5. Adım: Windows'lardaki şifrelenmiş parola desteğini kaldırın.................................249

ix
Kitap Hakkında

Kitap Hakkında

Telif Hakkı © 1999, 2007 Mustafa Başer


Telif Hakkı © 1999, 2007 Görkem Çetin

Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Genel


Kamu Lisansının 2. ya da daha sonraki sürümünün koşullarına bağlı kalarak
kopyalayabilir, dağıtabilir ve/veya değiştirebilirsiniz. Bu Lisansın özgün kopyasını
http://www.gnu.org/copyleft/gpl.html adresinde bulabilirsiniz.
BU BELGE “ÜCRETSİZ” OLARAK RUHSATLANDIĞI İÇİN, İÇERDİĞİ BİLGİLER İÇİN
İLGİLİ KANUNLARIN İZİN VERDİĞİ ÖLÇÜDE HERHANGİ BİR GARANTİ
VERİLMEMEKTEDİR. AKSİ YAZILI OLARAK BELİRTİLMEDİĞİ MÜDDETÇE TELİF
HAKKI SAHİPLERİ VE/VEYA BAŞKA ŞAHISLAR BELGEYİ “OLDUĞU GİBİ”, AŞİKAR
VEYA ZIMNEN, SATILABİLİRLİĞİ VEYA HERHANGİ BİR AMACA UYGUNLUĞU DA
DAHİL OLMAK ÜZERE HİÇBİR GARANTİ VERMEKSİZİN DAĞITMAKTADIRLAR.
BİLGİNİN KALİTESİ İLE İLGİLİ TÜM SORUNLAR SİZE AİTTİR. HERHANGİ BİR HATALI
BİLGİDEN DOLAYI DOĞABİLECEK OLAN BÜTÜN SERVİS, TAMİR VEYA DÜZELTME
MASRAFLARI SİZE AİTTİR. İLGİLİ KANUNUN İCBAR ETTİĞİ DURUMLAR VEYA YAZILI
ANLAŞMA HARİCİNDE HERHANGİ BİR ŞEKİLDE TELİF HAKKI SAHİBİ VEYA
YUKARIDA İZİN VERİLDİĞİ ŞEKİLDE BELGEYİ DEĞİŞTİREN VEYA YENİDEN
DAĞITAN HERHANGİ BİR KİŞİ, BİLGİNİN KULLANIMI VEYA KULLANILAMAMASI
(VEYA VERİ KAYBI OLUŞMASI, VERİNİN YANLIŞ HALE GELMESİ, SİZİN VEYA
ÜÇÜNCÜ ŞAHISLARIN ZARARA UĞRAMASI VEYA BİLGİLERİN BAŞKA BİLGİLERLE
UYUMSUZ OLMASI) YÜZÜNDEN OLUŞAN GENEL, ÖZEL, DOĞRUDAN YA DA
DOLAYLI HERHANGİ BİR ZARARDAN, BÖYLE BİR TAZMİNAT TALEBİ TELİF HAKKI
SAHİBİ VEYA İLGİLİ KİŞİYE BİLDİRİLMİŞ OLSA DAHİ, SORUMLU DEĞİLDİR.
Tüm telif hakları aksi özellikle belirtilmediği sürece sahibine aittir. Belge içinde geçen
herhangi bir terim, bir ticari isim ya da kuruma itibar kazandırma olarak
algılanmamalıdır. Bir ürün ya da markanın kullanılmış olması ona onay verildiği
anlamında görülmemelidir.

© Mustafa Başer & Görkem Çetin - 2007 11


Birinci Kısım: Giriş ve Ön Bilgiler

Birinci Kısım:
Giriş ve Ön Bilgiler

Bu kısımda, önce Sambanın tarihçesini anlatacağız. Ardından, "Samba nedir?"


sorusuna kısa bir cevap vereceğiz (2.Bölüm). Aslında Samba'nın ne olduğuna dair
sorunun cevabının verilmesi çok kolay değildir. "Samba Nedir?" diyecek olursanız, bu
kitabın tamamı sorunuza bile tam cevap olamayacaktır. Kitabı okuyun ve soruyu bir
de kendinize sorun.
Bu ön bilgilerden sonra, Samba ve Microsoft ağlarını daha iyi anlayabilmek için bazı
açıklamalar yapacağız (3.Bölüm). Microsoft ağlarını çok iyi biliyorsanız, bu bölümü
okumanıza gerek yoktur, ancak bazen iyi bildiğimiz yerlerde bile, bazı kavramları
unutmuş olabiliyoruz. ısterseniz yüzeysel olarak bu bölümü inceleyiniz.
Bu bölümün son konusu (3.Bölüm) Samba'nın sisteminize indirilmesi ve
derlenmesidir. Çoğu zaman kurulu halde gelmektedir. Özellikle 2.0'dan yeni bir sürüm
kullanıyorsanız, Samba'yı derlemeye pek ihtiyacınız olmayabilir. Ancak sürekli
yenilenen Samba'nın son sürümlerini kullanmak ta kuşkusuz daha iyi olacaktır. Bu
yüzden bu bölümü ihtiyacınız olduğunda okuyabilirsiniz.

© Mustafa Başer & Görkem Çetin - 2007 1


1. Samba'nın Tarihçesi

1. Samba'nın Tarihçesi

A şağıda Samba projesine yönelik bir tarihçe okuyacaksınız.


Diğer Linux projeleri gibi Samba'nın da internet üzerinde
başlayan bir çalışma olduğunu, daha sonra buna yüzlerce
kişinin destek verdiğini zaten şimdiden tahmin ediyorsunuzdur.
Projenin adım adım hangi basamaklardan geçtiğini görmek,
konunun büyüklüğü (ve belki de projenin nereye doğru kayabileceği)
hakkında size bir fikir verecektir.
Herşey, Andrew Tridgell, Samba'nın yaratıcısı, 1991 yılında
Avustralya Devlet Üniversitesi'nde doktora öğrenimine devam
ederken başlıyor. Andrew, Digital firmasından eXcursion
programının bir beta kopyasını alıyor ve PC'sinde çalıştırmayı
deniyor. O günler, MS-DOS çok yaygın ve henüz Windows'un her eve
girmediği zamanlar.
eXcursion programı o sıralar Digital tarafından geliştirilen ve
Pathworks adı verilen bir ağ üzerinde çalıştırılıyordu. Andrew ise
eXcursion gelene kadar PC-NFS yardımıyla bilgisayarını yerel çalışan
bir Sun'a bağlıyor ve Sun makinadaki diski rahatlıkla
kullanabiliyordu. Pathworks'ü çalıştırabilmek için ise mutlaka PC-
NFS'ten feragat etmesi gerekiyordu.
Pathworks henüz yeni geliştirilen bir yapıya sahip olduğundan dolayı
sadece Digital işistasyonlarında çalışan VMS ve Ultrix üzerinde
kullanılabiliyordu. Andrew'in bu nedenle Pathworks'ü kullanarak
daha önce yaptığı gibi Sun üzerindeki diskleri kullanma şansı yoktu.
Andrew devam ediyor: "O sıralarda aynı zamanda üzerinde Ultrix
işletim sistemi çalışan bir de Decstation 3100 işistasyonum vardı.
Etraftan duyduklarıma göre, Ultrix'in Pathworks ile konuşması için
yapılması gereken çok fazla bir şey yoktu. Belki de uğraşıp bu
birlikteliği sağlayabilirdim."
Andrew'un o sıralarda ne ağ programlama hakkında bilgisi vardı, ne
de sorsanız bir soket(*) nedir bilmiyordu.

© Mustafa Başer & Görkem Çetin - 2007 3


1. Samba'nın Tarihçesi

Andrew bir kaç gün boyunca soketler hakkında yazılmış programları


inceledi. Aslında socket yapısını kullanan ve ağ üzerindeki paketleri
dinleyen bir program yazmanın ne kadar kolay olduğunu gördü.
Samba paketiyle birlikte gelen sokcspy.c programı ile Pathworks
istemci ve sunucu arasında gelip giden paketleri toplamaya ve
incelemeye başladı.

Andrew, programcılık bilgisini geliştiriyor


şimdi Andrew'un amacı, ağ üzerindeki her paketi yakalayarak belirli
dosya işlemlerinin ne şekilde yapıldığı hakkında bir fikir sahibi
olmaktı. Çok geçmeden temel ağ/dosya işlemleri hakkında (open -
dosya aç, read - dosya oku, cd - dizine geç) bilgi sahibi olmaya
başladı. Önemli olan her paketi okumak, paketi içeren baytların
karşılığını bulmak ve benzeri işlemleri yapabilecek bir program
yazmaktı.
Kısa sürede aynı işi Sun iştasyonunda yapacak hale geldi. ılk defa
bir bağlantı kurup belirli bir dosyadan veri okumak amacıyla yazdığı
programı başarıyla çalıştırdı. Bundan bir hafta sonra da üzerinde
pathworks çalışan PC yardımıyla Sun'daki bir diski kendi
bilgisayarına bağlamayı (mount) başarmıştı.

Fikirler zenginleşince...
Andrew, programcılık bilgisini geliştirmesiyle, yaptıklarını diğer
insanlarla paylaşmayı düşündü. Üniversitede birkaç arkadaşına
yaptığı çalışmalardan bahsetti, ancak fazla ilgi görmedi. Digital'dan
bir çalışanla yaptığı konuşmasında, programını dağıtmasının yasal
olup olmadığını sordu. Aldığı cevap ilginçti: "ıstediğin gibi dağıt, ama
bir yere ulaşabileceğini sanmıyorum". Bu arada Andrew ilk defa
"netbios" kavramı ile tanıştı. Yapabileceklerini netbios'un özellikleri
okuyarak geliştirmeyi düşündü.
Netbios'un spec dosyalarını (bir ürüne ait olan ve o ürünün tüm
özelliklerini içeren dosya) RFC (Request for command) listesi içinde
arayan Andrew, sonunda RFC1001 ve RFC1002 dosyalarında
istediklerine kavuştu. O anda, şimdiye kadar yaptıklarının bir SMB
kopyası olduğunu anladı.
Andrew, SMB bağlantısı için yazdığı tüm program parçalarını
ınternet'e, Server 0.1 adıyla koydu. Kısa zamanda, Digital UNIX
altında çalışmayan kullanıcılardan yoğun bir talep ve teşekkür aldı.
Ürününün sürüm numarasını önce 0.5'e, sonra da 1.0'a yükseltti.
Artık eXcursion'a ihtiyacı kalmamıştı.

4 © Mustafa Başer & Görkem Çetin - 2007


Fikirler zenginleşince...

2 yıl sonra, programının yeni sürümünü soran ve mevcut hataların


durumunu öğrenmek isteyen kişiler tarafından mesaj
bombardımanına tutuldu Andrew. Bu sırada, birkaç kişiden
programının Lanmanager ile birlikte kullanılmasının mümkün
olduğunu da öğrendi. Bir keresinde, Güney Avusturalya
Üniversitesi'nden Dan Shearer'dan aldığı bir mesaj, projenin
gidişatını bir anda değiştiriverdi:
"Andrew, bir Linux haberleşme listesinde, UNIX için kullanılabilen ve
ücretsiz bir Pathworks sunucusunun varlığından haberdar oldum.
Bu sunucunun sonunda senin tarafından yazıldığını öğrendim. Son
durum nedir? Eğer Linux dünyasına girersen, bu konuda ilgili pek
çok meraklıdan destek alabilirsin" Andrew, Dan'a Linux'un ne
olduğunu sordu. Dan ise Linux'un PC'ler için yazılmış serbest bir
UNIX türevi olduğundan bahsetti (Kasım 1992).
Tam bu sıralarda Andrew, Digital'dan bir mektup alıyor. Digital,
Andrew'ın programını kendi yazılımlarında kullanmak için izin
istiyor, ancak sonra Digital'dan bir haber alamıyor.
1993 yılının Aralık ayında Dan'ın Andrew'e yolladığı mesaj ile olaylar
bir anda boyut kazanıyor. Dan, Andrew'ın sunucu yazılımının
comp.protocols.tcpip.ibmpc haber öbeğinde tartışıldığını söyleyince
Andrew hemen ınternet'e bakıp neler olup bittiğini öğrenmeye
çalışıyor.
O sıralarda Andrew, çalıştığı firmadan bir 3Com505 ethernet kartı
alıyor. Aynı anda da haber öbeklerinin birinde, Linux için 3Com505
kartı için sürücü yazıldığından bahsediliyor. Andrew hemen eşinin
makinası ile kendi Linux bilgisayarı arasında minik bir ağ kuruyor.
Yine haber öbeğinde, Microsoft tarafından ftp adresine konulan ve
ücretsiz olarak dağıtılan bir istemci (client) hakkında bilgi alıyor.
ıstemciyi ınternet'ten indiriyor ve yazdığı Pathworks sunucu ile
çalıştığını görüyor.

Samba'nın doğuşu
Andrew, SMB protokolünün spec dosyalarını aramaya başlar ve ftp
yardımıyla kısa sürede bulur. Dosya yardımıyla yazdığı sunucuyu
geliştirir. 1993 yılının Aralık ayında ise "Netbios for UNIX" isimli bir
projeye başladığını ilan eder.
1994 şubat'ında listede yaklaşık 100 kişi, Samba projesini
geliştirmek için çalışmaktadır. Listedeki üye sayısı 1995 yılında
1400'e, 1996 yılında 3000'e yükselir. 1996 yılında Andrew
1.9.16alpha1 sürümünü çıkartır. Master browser (ana tarayıcı)
desteğini paketine ekler. Samba artık OS/2 ve Amiga'ya da
aktarılmıştır.

© Mustafa Başer & Görkem Çetin - 2007 5


2. Samba Nedir?

2. Samba Nedir?

Samba, kısaca UNIX sistemlerle Windows makinalar arasında yazıcı


ve dosya paylaşımı yapan bir pakettir. Bu sayede UNIX sistem
üzerindeki kaynaklar, Windows tarafında kolayca erişilebilecek bir
hale gelebilir. Yukarıdaki iki satırda da biz "UNIX" kelimesini
kullandık, ancak kitap içinde yeralan tüm örnekleri Linux altında
yaptık. Samba çok geniş bir platform desteği içermesine rağmen
bundan sonraki konuşmalarımız hep Linux üzerine olacak.
Diyelim ki bir muhasebe programını ağ üzerinde kullanacaksınız. Bir
kere bu programı, Windows'a paylaştırılmış Linux diski üzerine
kurduktan sonra, Linux'un diskini diğer tüm istemcilere
paylaştırmasını sağlayabilir ve programı ağ üzerinde
çalıştırabilirsiniz.
Samba kullanan sistemlerde, paylaştırılan diskler tıpkı yerel diskler
gibi görünecektir. Kullanıcılar, sanki yanıbaşlarındaki bir diski
paylaşıyormuşçasına uzaktaki bir Linux makinaya bağlanabilirler.
Samba tüm bunları SMB ağ protokolünü yorumlayarak
gerçekleştiriyor. SMB, TCP/IP üzerinden NetBIOS yardımıyla ağ
üzerindeki makinalar tarafından kullanılır. NetBIOS da başlı başına
bir protokol.
Samba'nın ilk olarak verdiği disk ve yerel depolama araçlarının
paylaşılması hizmetine, daha sonra yazıcı desteği de eklendi. Bu
sayede Samba ile servis veren bir Linux makinası üzerindeki yazıcı,
bu servise erişim sağlayabilen Windows makinalar tarafından
kullanılabilir hale geldi. Bu sayede her Windows makina üzerinde bir
yazıcı belirtmektense daha güçlü bir Linux sunucudaki yazıcının, ağ
üzerindeki Windows'lar tarafından kullanılması mümkün oldu.
Samba sayesinde sistem yöneticileri, bir laboratuvarda birbirinin
aynı olan tüm makinalara aynı işletim sistemini yüklemektense
Samba yardımıyla bir makinaya bu programı yüklerler, ardından
Samba paylaşımlarını buna göre ayarlayarak çok kısa bir süre içinde
diğer tüm makinalara bu programı paylaştırırlar. Bu sayede ciddi bir
zaman tasarrufu elde edilebilir.

© Mustafa Başer & Görkem Çetin - 2007 7


2. Samba Nedir?

Samba yardımıyla kurduğunuz bir ağda, "Network Neighborhood"


altında Linux makinasını kolayca görebiliyor olursunuz. Böylece
pratikte yapamayacağınız pek çok işlem çok kısa bir zaman
süresinde, hem de hatasız olarak yapılabilir.
Linux, ınternet üzerinde geliştirilen, açık kaynak koda sahip ve diğer
işletim sistemlerine göre çok daha hızlı, performanslı ve belki de
daha önemlisi, ücretsiz bir işletim sistemi. Linux felsefesini beğenen
ve ınternet üzerinde geliştirme yapan programcılar, bu sistemin her
zaman daha iyiye gitmesi için çalışmalarda bulunuyorlar. şimdiden
Linux'a geleceğin işletim sistemi gözüyle bakılıyor.
Linux gibi ücretsiz dağıtılan, yazar hakkı gözetilerek istenildiği kadar
çoğaltılabilen ve hatta tekrar satılabilen Samba ise en sık kullanım
alanını Linux'ta buluyor. O da Linux gibi açık olarak geliştiriliyor,
sürekli olarak daha güvenli, daha performanslı ve kullanıcıların
beklentilerine uygun bir hal alıyor. Son sürümünde 200'e yakın
seçenekle birlikte gelmesi, Samba'nın ne kadar esnek ve
yapılandırılabilir olduğunun küçük bir göstergesi.
Samba'yı anlamak ve kullanmak gerçekten hatırı sayılır ölçüde bir
ağ bilgisi gerektiriyor. Bunun yanında, Linux dosya sistemi yapısı,
Linux komutları ve temel Linux bilgisi ile bazı işlerinizi daha kısa
zamanda bitirme imkanınız da var. Deneyimlerimiz, bir gün içinde
kolayca Samba kurup verimli bir şekilde kullanabilecek halde olan,
hiç de azımsanmayacak sayıda sistem yöneticisi olduğunu
gösteriyor. Hatta bu kişiler daha önce Samba'dan habersizdiler.
Önerimiz, Samba'yı önce temelden öğrenmeniz. Zaman geçtikçe
üzerine yeni bilgiler ekleyebilir, sistemdeki hakimiyetinizi kolayca
artırabilirsiniz.

8 © Mustafa Başer & Görkem Çetin - 2007


3. SMB Nedir?

3. SMB Nedir?

B u bölümde SMB protokolünü açıkladıktan sonra SMB için


istemci sunucu uygulamalarının bazılarından bahsedeceğiz.
Samba sunucusunu daha iyi anlayabilmek için bu bölümde
yaptığımız açıklamalara hakim olmalısınız.
SMB protokolünün önemli olması, şu anda dünyadakai PC'lerin
birçoğunu hali hazırda istemci sunucu uygulamalarını çalıştırıyor
olmasından kaynaklanıyor. Diğer işletim sistemleri bir yana bütün
Windows 3.x, Windows 9x ve Windows NT makinalarının hepsi SMB
istemcisi, sunucusu veya her ikisi olarak çalışmaktadır.
şu anda bu konuda birçok yenilik yaşanmakta ancak bunlardan en
çok ilgi göreni SMB protokolü için CIFS (Common Internet File
System) dir.

SMB
SMB (Server Message Block) çoğunlukla dosya, yazıcı ve seri
portların paylaştırılması için kullanılan bir protokoldür.
SMB ilk olarak 1987 yılında Microsoft/Intel dökümanları içerisinde
Microsoft Networks/OpenNET-FILE SHARING PROTOKOL olarak
tanımlanmış ve daha sonraları Microsoft ve diğerleri tarafından
geliştirilmiştir. SMB protokolünün tanımı ile ilgili daha detaylı
bilgileri ftp.microsoft.com adresinden edinebilirsiniz.
SMB istemci-sunucu, istem-tepki protokolüdür. şekil 3.1'de
SMB'nin nasıl çalıştığını görüyorsunuz. Sunucular, dosya
sistemlerini ve diğer araçlarını istemciler için erişilebilir hale getirir.
ıstemci makinalar kendi sabit disklerine sahip olabilirler, fakat aynı
zamanda ağ üzerindeki kullanabilecekleri paylaştırılmış dosya
sistemlerine ve yazıcılara erişmek isteyebilirler.

© Mustafa Başer & Görkem Çetin - 2007 9


3. SMB Nedir?

Şekil 3.1: ıstemci yapmak istediğini bir SMB isteği ile sunucuya iletir, sunucu da bu işleri
yapar ve sonucu SMB tepkisi ile istemciye iletir.

İstemciler sunuculara TCP/IP (aslında TCP/IP üzerine bindirilmiş


NetBIOS), NetBEUI veya IPX/SPX kullanarak bağlantı kurarlar. Bir
kere bağlantı kurulduğu zaman, istemci kendi komutlarını (SMB)
kendi dosya sistemlerini, okuma yazma gibi bir dosya sisteminde
yapabileceğiniz her türlü işlemler için paylaştırmış sunucuya
gönderir. Fakat yapılanlar SMB için biraz daha farklıdır. Bütün bu
işlemler ağ üzerinde olur.
Yukarıda bahsettiğimiz gibi SMB birçok protokol üzerinde çalışabilir.
Aşağıdaki listede bunu görüyorsunuz:
Uygulamalar
SMB
NetBIOS
IPX/SPX
TCP/IP NetBEUI
PPP, 802.x
Donanım: Token Ring, ethernet, seri bağlantı ...

SMB; TCP/IP, NetBEUI ve IPX/SPX üzerinde kullanılabilir.


TCP/IP üzerinde NetBIOS kullanıldığında birçok isme çağrışım
yapar. Microsoft bazı yerlerde buna NBT ve bazen de NetBT (özellikle
Windows NT dökümanlarında ve WinNT registery'lerinde)
demektedir. Başkaları ise FRCNB adını verir. Microsoft bazen
NetBEUI'dan NBF yi kasdetmektedir.

NetBIOS isimleri
Eğer SMB TCP/IP veya NetBEUI üzerinde kullanılacak olursa,
NetBIOS isimleri birçok durumda kullanılmak zorundadır. NetBIOS
isimleri 15 karaktere kadar olabilmekte ve genellikle NetBIOS

10 © Mustafa Başer & Görkem Çetin - 2007


NetBIOS isimleri

çalıştıran makinaların ismi olmaktadır. Microsoft ve bazı diğer


uygulayıcılar NetBIOS isimlerinin büyük harflerden oluşmasında
ısrarcı davranmaktadırlar.

SMB Protokolü Türevleri


SMB'nin ilk uygulamalarından bu yana, karmaşıklığından meydana
gelen kullanım zorluklarını çözmek amacı ile birçok SMB türü
protokoller geliştirilmiştir.
ıstemci-Sunucu tipindeki gerçek türev negprot SMB protokolüdür.
Bu tür bağlantılarda yine ilk gönderilmesi gereken SMB protokolü
olacaktır.
ılk türev protokol Core Protokol olarak adlandırılan ve PC'ler
üzerindeki bir SMB uygulaması olan NETWORK PROGRAM 1.0
tarafından kullanılır. Bu protokol, birçok temel işlemi yapacak
düzeydedir. Bunlar arasında,
• Dosya ve sunucu paylaşımlarına bağlantı ve bağlantıyı kesme.
• Dosyaları açma ve kapama.
• Yazıcı dosyalarını açma ve kapama.
• Dosyaları okuma ve yazma.
• Dosya ve dizinleri yaratma ve silme.
• Dizinleri tarayabilme.
• Dosya izinlerini elde etme ve değiştirebilme.
• Dosyalar içindeki bayt aralığını kilitleme ve açma.
Diğer türevler bunlardan daha fazla fonksiyonu yerine
getirebilmktedir. Bazı türevler ve LAN Manager ile ilgili olanlar
şöyledir:

© Mustafa Başer & Görkem Çetin - 2007 11


3. SMB Nedir?

SMB Türevi Protokol Protokol ismi Açıklamalar


PC NETWORK PROGRAM Bazı sürümleri PCLAN1.0 ile
Core Protocol
1.0 adlandırılır.
MICROSOFT NETWORKS Kilitleme ve okuma ile yazma ve
Core Plus Protocol
1.03 açmayı içerir.
LANMAN1.0 ile aynı fakat, OS/2
MICROSOFT NETWORKS
DOS LAN Manager 1.0 hataları DOS hatalarına çevrilmek
3.0
zorunda.
LANMAN1.0 LAN Manager 1.0 Tam LANMAN1.0 protokolü.
LM1.2X002 ile aynı, hatalar DOS
DOS LM1.2X002 LAN Manager 2.0
hatalarına çevrilmek zorunda.
LM1.2X002 LAN Manager 2.0 Tam LANMAN2.0 protokolü
LANMAN2.1ile aynı, hatalar DOS
DOS LANMAN2.1 LAN Manager 2.1
hatalarına çevrilmek zorunda.
LANMAN2.1 LAN Manager 2.1 Tam LANMAN2.1 protokolü.
Windows for Workgroups
LAN Manager 2.1 Çalışma Grupları için Windows 1.0
3.1a
NT LM 0.12 NT LAN Manager 1.0 NT için bazı özel SBM'leri içermekte
Samba NT LAN Manager 1.0 NT LM 0.12'nin Samba sürümü
Gerçek NT LM 0.12 artı biraz
CIFS 1.0 NT LAN Manager 1.0
fazlası.

Güvenlik:
SMB'de iki basamaklı güvenlik vardır:
• Share Level (Paylaşım Basamağı). Paylaşım düzeyi ya da
paylaşım basamağı adı verilen bu basamakta, her paylaşım kendi
başına bir parola içerebilir ve istemcinin o paylaşıma bağlantı
kurabilmesi için tek bilmesi gereken bu paroladır. Çalışma
Grupları için Windows tarafından kullanılan wserver.exe,
Windows 95'te olduğu gibi sadece bu tip bir güvenliğe sahiptir.
• User Level (Kullanıcı Basamağı). Koruma, sunucu üzerindeki
her dosya ve dizine uygulanır, bu da kullanıcının o dosya ve
dizinler üzerindeki hakları ile belirlenir. Her kullanıcı (istemci)
sunucuya girmek zorunda ve sunucu tarafından kimliğinin
onaylanması gerekmektedir. Kullanıcının kimliği onaylandıktan
sonra, kullanıcıya bir UID (kullanıcıyı ayırt etme numarası) verilir
ve bundan sonra erişmek istediği her kaynakta bu numarayı
kullanır. Bu model LAN Manager 1.0'dan itibaren kullanılmıştır.

12 © Mustafa Başer & Görkem Çetin - 2007


Ağın Taranması

Ağın Taranması
Kullanıcılar ağ üzerindeki sunuculara ulaşamadıktan sonra, bu tür
sunucuların çokluğu bir anlam ifade etmeyecektir. Elbette ki istemci
makinalar çevresindeki sunucuları bilecek şekilde yapılandırılabilir,
fakat yeni bir sunucu eklendiğinde veya çıkartıldığında böyle bir
yapılandırmanın faydası olmayacaktır. Bu sorunu çözmek için
"tarama" yöntemi geliştirilmiştir. Her bir sunucu kendisinin varlığı
hakkında ağa bir bilgi yayınlar. ıstemciler de bu bilgileri toplayarak
bir tarama listesi oluştururlar. NetBEUI ortamında bu yöntem
başarılı bir şekilde çalışabilmek-tedir, fakat TCP/IP ortamında bazı
sorunlar yaşanmaktadır. Sorunun kaynağı, TCP/IP'nın çoğu zaman
hangi alt ağda olduğu bilgisini ağa yayınlamamasıdır (bunun
yanında bazı yönlendiriciler, bilgileri diğer alt ağlara
taşıyabilmektedir).
Microsoft bu sorunlara çözüm olarak, tarama sunucularını ve WINS'i
(Windows Internet Name Service) geliştirmiştir.

CIFS
Microsoft ve yerel ağlarda SMB kullanmayı yeğleyen diğer şirketler
(Digital Equipment, Data General, SCO, Network Appliance Corp, ...),
SMB protokolünü daha kolay kullanılır hale getirmek için çeşitli
araştırmalar yapmaktadırlar. NT LM 0.12'nin yerine gelecekte CIFS
1.0'ın geçeceği düşünülmektedir.

SMB Değişimine bir Örnek


ıstemci ve sunucu arasındaki protokol elemanlarının (istek ve tepki)
değişimine SMBs denilmektedir. ıstek ve tepkilerin birbirine çok
benzeyen özel bir yapısı vardır. Herbiri, eş boyutaki bir başlık ve
bunu izleyen değişik boyutlardaki parametre ve veri kısmını içerir.

© Mustafa Başer & Görkem Çetin - 2007 13


3. SMB Nedir?

Şekil 3.2: Negport komutu ile istemcinin sunucuya bağlantı kurması.

NetBIOS basamağında bir bağlantı kurulduktan sonra (NBF, NetBT


veya diğerleri ile) istemci bilgisayar, sunucudan bazı taleplerde
bulunmaya hazırdır. Bunun yapılabilmesi için, istemci ve
sunucunun SMB protokolünün hangi türevini kullandığını ayırt
etmeleri gerekmektedir. Bu söylediklerimizi grafiksel olarak şekil
3.2'de görüyorsunuz.

14 © Mustafa Başer & Görkem Çetin - 2007


4. Samba'nın Kurulumu

4. Samba'nın Kurulumu

S amba'nın kurulumu gerçekten kolaydır. Hemen hemen tüm


popüler Linux dağıtımları (Slackware, Red Hat, Mandrake,
SuSe) Samba ile birlikte gelirler. Bu dağıtımlarda Samba sizin
için derlenmiş, kütüphaneleri yerli yerine konmuştur. Yapılandırma
(konfigürasyon) dosyaları kullanmanız için uygun dizine
yerleştirilmiştir.
Eğer,
1. Samba'nın yeni bir sürümünü kurmak istiyorsanız
2. Sistemde Samba yoksa ve RPM tabanlı bir dağıtım
kullanmıyorsanız
Samba'yı ınternet yardımıyla indirip derlemeniz gerekecektir. Bunun
için aşağıda yazılanları adım adım takip etmelisiniz. RPM tabanlı
dağıtımlarda (SuSe, Caldera, Red Hat) Samba paketini
kurduğunuzda Samba çalışmaya hazırdır. Tek yapılması gereken,
/etc/smb.conf yapılandırma dosyasını incelemek ve gerekli görülen
noktalarda değişiklik yapmaktır.
Samba'yı kaynak kodu halinde almışsanız, aşağıdakileri okumaya
devam edin.

Adım Adım Samba'nın Kurulması

1. Adım : Kaynak programı indirin ve açın.


Kaynak programı Türkiye'deki tr.samba.org adresinden
indirebilirsiniz.
Örnek bir ftp oturumunu aşağıda görebilirsiniz. Koyu renkle
yazılanlar, kullanıcının klavyeden girdiği ftp komutlarıdır.

© Mustafa Başer & Görkem Çetin - 2007 15


4. Samba'nın Kurulumu

$ ftp tr.samba.org
Connected to sunsite.bcc.bilkent.edu.tr.
220-
220-Welcome to Bilkent Sunsite Archive
220-
220 sunsite FTP server (Version wu-2.4.2-academ (1) Tue
Mar 30 15:56:41 EET
DST
1999) ready.
Name (tr.samba.org:gorkem): ftp
331 Guest login ok, send your complete e-mail address as
password.
Password:
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd samba
250-See http://samba.org/ for a list of mirror sites
250-
250-Please read the file README
250- it was last modified on Sun Feb 28 00:08:34 1999 -
36 days ago
250 CWD command successful.
ftp> dir samba*
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-rw-r--r-- 1 akgul staff 2081264 Feb 27 22:20
samba-2.0.3.tar.gz
lrwxrwxrwx 1 akgul staff 18 Feb 28 03:00
samba-latest.tar.gz ->
samba-2.0.3.tar.gz
226 Transfer complete.
samba-latest.tar.gz dosyası her zaman en son Samba sürümüne
işaret eder. Bu dosyayı sisteme indirelim.
ftp> lcd /usr/local
Local directory now /usr/local
ftp> bin
200 Type set to I.
ftp> lcd /tmp
Local directory now /tmp
ftp> get samba-latest.tar.gz
local: samba-latest.tar.gz remote: samba-latest.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for samba-
latest.tar.gz (2081264 bayts).
2081664 bayts received in 8325.13 secs (2.5 Kbayts/sec)
ftp> quit
221 Goodbye.
Samba paketini /usr/local dizinine koyduk. Linux altında bir
program derlemeniz gerekiyorsa, dizin yapısının karmaşık bir hal
almaması için tüm paketleri bir yerde toplayın. Bunun için uygun
olan dizin /usr/local/src ya da /usr/local'dır.
şimdi arşivlenip sıkıştırılmış Samba paketini açmamız gerekiyor.
Bunun için root haklarıyla sisteme girin ve /usr/local dizinine geçin.

16 © Mustafa Başer & Görkem Çetin - 2007


Adım Adım Samba'nın Kurulması

$ su -
Password: *********
# cd /usr/local
Sırada Samba paketini açmak var.
# tar -zxvf samba-2.0.3.tar.gz
samba-2.0.3/
samba-2.0.3/.#WHATSNEW.txt.1.32.2.13
samba-2.0.3/COPYING
samba-2.0.3/docs/
samba-2.0.3/docs/faq/
samba-2.0.3/docs/faq/Samba-Server-FAQ-2.html
samba-2.0.3/docs/faq/Samba-Server-FAQ-1.html
.........
Açılan samba-2.0.3 dizinine girin (bu dizin, sizin indirdiğiniz Samba
paketinin sürüm numarasına göre farklılık gösterebilir).

2. Adım: Samba'yı derleyin


source dizinine girin. Makefile dosyasına göz atın. Burada
değiştirmek istediğiniz birtakım parametreler olabilir. Örnek olarak
Samba'nın öntanımlı olarak kurulacağı /usr/local/samba dizinini
değiştirebilirsiniz. Tüm bunları derleme işleminden önce
yapmalısınız.
şimdi
# ./configure
komutunu girin. configure komutu, sistemde yeralan derleyicileri ve
kütüphaneleri kontrol edecek ve Samba'nın çalışması için gerekli
ayarlamaları yapacaktır. configure komutunun çalışması bittikten
sonra ise
# make
komutunu girin. Samba paketi derlenecek ve çalıştırılabilir paketler
oluşturulacaktır. Sistemin gücüne göre derleme işlemi 3-15 dakika
sürebilir.

3. Adım: Samba'yı sisteme kurun


make komutundan sonra verilecek
# make install
komutu, Samba'yı, yapılandırma dosyasını, kılavuz sayfalarını ve
kütüphaneleri gerekli noktalara yerleştirecektir.
Sadece çalıştırılabilir (ikili) dosyaları kurmak için
# make installbin
ve sadece kılavuz sayfalarını kurmak için

© Mustafa Başer & Görkem Çetin - 2007 17


4. Samba'nın Kurulumu

# make installman
komutlarını kullanabilirsiniz.
Eğer Samba'nın eski bir sürümünü güncelliyorsanız, eski
programlar, .old soneki ile kaydedileceklerdir. Samba hizmetinin
çalışmaması halinde
# make revert
komutunu kullanarak Samba'yı tekrar eski sürüm ile kullanma
şansına sahip olursunuz.

RPM Tabanlı Sistemlerde?


RPM sisteminin bir özelliği, ftp adreslerine girmeden, herhangi bir ftp
adresinden komut satırından kurulum yapabilmeniz. Aşağıdaki
örneği incelerseniz, daha kolay anlayabileceksiniz:
# rpm -i ftp://ftp.redhat.com/pub/RedHat/RPMS/samba-2.0.3-
4.i386.rpm
Mevcut sistemde bir Samba paketinin kurulu olup olmadığını
anlamak için, rpm komutuna -qa parametrelerini getirmek yeterlidir.
-qa, sistemde kurulu tüm paketlerin bir listesini verecektir.
# rpm -aq | grep samba
samba-2.0.5a
Yukarıdaki satırlar, samba-2.0.5 paketinin kurulu olduğunu
gösteriyor.
Daha yeni bir Samba sürümü kurmak için, rpm programının -Uvh
(güncelle) parametresini kullanabilirsiniz.
# rpm -Uvh samba-2.0.6-i386.rpm

18 © Mustafa Başer & Görkem Çetin - 2007


İkinci Kısım: Samba Yapılandırma Seçenekleri

İkinci Kısım:
Samba Yapılandırma Seçenekleri

Samba'nın 2.0 sürümünde yaklaşık 165 tane yapılandırma seçeneği mevcuttur. Bu


seçeneklerin bir kısmı "genel yapılandırma seçenekleri" bir kısmı da "hizmet
yapılandırma seçenekleri" olarak düşünülebilir. Bu yüzden bu kısımda iki bölüm
bulunmaktadır. Bu kadar çok seçeneğin okunabilir bir sıraya getirilmesi oldukça
zordur. Bazen bir seçenekten bahsedeken, henüz anlatmadığımız başka bir seçenekten
de konuşmak zorunda kalıyoruz. Mümkün olduğu kadar akıcı bir gruplandırma
yapmaya çalıştık. Ancak bu bölümü çoğu zaman bir "Referans" olarak düşünmelisiniz.
Biz bu bölümü hazırlarken tüm seçenekleri anlatmadık. Bazı seçeneklerin kullanımı
çok zor olduğundan, bazılarının ise sizler için pek fazla anlam ifade etmeyeceğini
düşünerek atladık. Ancak şunu kesin olarak söyleyebiliriz ki, bu bölümdeki seçenekler
yardımıyla sunucunuzu en iyi performansı yakalayacak şekilde yapılandırabilirsiniz.
Açıklamadığımız seçenekleri kesinlikle "gereksiz" olarak görmüyoruz.
5. bölümde Samba'nın genel yapılandırma seçeneklerini bulacaksınız. Bu seçenekler
Samba'nın genel davranışları ile ilgilidir. Yaptığınız ayarlamaların bir kısmı, hizmet
bölümleri için öntanımlı değer olabilmektedir. Ancak hizmet bölümlerinde yapacağınız
bir değişiklik, genel bölümdeki yapılandırmayı iptal edebilir. Örneğin tüm sunucu için
"salt okunabilir" dediniz, ancak bir hizmette "yazılabilir" seçeneğini kullandınız. Bu
durumda genel yapılandırmadaki öntanım bu hizmet için kalkacaktır.
6. bölüm ise daha çok hizmet yapılandırmalarını anlatmaktadır. Hizmetten kastımız
istemcilere verilen bir hizmeti (servisi) ifade etmektir. Bunlar arasında, yazıcı ve dosya

© Mustafa Başer & Görkem Çetin - 2007 19


İkinci Kısım: Samba Yapılandırma Seçenekleri

paylaşımı gelmektedir. Bir dosya sunucusu olarak kullanılan Sambatahmin


edemeyeceğiniz kadar bol seçenek sunmaktadır. Windows NT'nin en büyük rakibi
olarak görülen Samba'nın en büyük avantajı, yapılandırma seçeneklerinin çok olması
sayesine, bir hizmetin çok esnek ve istenilen düzeyde yapılandırılabilmesidir.
Bu kadar çok seçeneğin hepsini elbetteki aklınızda tutmanıza imkan yoktur. Ancak,
bu bölümü dikkatli bir şekilde okursanız, karşılaştığınız bir sorunla başa çıkmanın, en
azından hangi seçenekler ile olabileceğini hatırlıyor olacaksınız.
Sistem yöneticisi, seçeneklerle ilgili temel bilgiye sahip değilse, çok çeşitli görsel
yapılandrıma araçlarını kullanırken bile zorlanabilir.

20 © Mustafa Başer & Görkem Çetin - 2007


5. Samba Genel Yapılandırma Seçenekleri

5. Samba Genel Yapılandırma


Seçenekleri

s mb.conf dosyası, hem smbd hem de nmbd için yapılandırma


dosyası olup, tek bir bölümde anlatılamayacak kadar
karmaşık ve uzundur. Bu yüzden iki bölüm halinde
inceleyeceğiz. Bunun nedeni Samba'nın kendisinin çok karmaşık
olması ve her özelliğinin yapılandırmaya karşı açık olmasıdır.
Yapılandırmanın bu kadar karmaşık olması sizi korkutmasın, çünkü
çoğu durumda bu seçeneklerin hepsini bilmek zorunda değilsiniz.
Sadece ihtiyaç duyduğunuzda ilgili seçeneği kullanacak ya da
anlamaya çalışacaksınız. Bu seçeneklerden bazıları eşanlamlı iken,
çoğu hizmet yapılandırmasında sadece bir kez kullanılmaktadır.

smb.conf Dosyasının Yapısı


Bölümler ve parametrelerden oluşan smb.conf dosyasının yapısı
Windows .ini dosyalarına çok benzemektedir. Her bir bölüm bir ağ
hizmetine veya özel bir bölüm olan [global] bölümüne (genel
yapılandırmaları içerir) aittir. Her bölüm kendisine ait olan ismin
köşeli parantezin içine alınmasından oluşur. Paremetreler "isim =
değer" şeklinde yazılır. Parametre ismi veya değerini belirtmek için
tırnak işareti kullanılmaz. Her satırdaki beyaz boşluklar (boşluklar
ve TAB karakterleri dosya okunurken) iptal edilirler. Değerler ve
parametre isimleri arasındaki beyaz boşluklar önemlidir. Bunların
dışında, bölüm isimleri ve parametre isimleri harf büyüklüğüne
duyarlı değildir.

© Mustafa Başer & Görkem Çetin - 2007 21


5. Samba Genel Yapılandırma Seçenekleri

şekil 5.1: Samba'da seçeneklerin doğru kullanılması

Noktalı virgül ile başlayan satırlar ile sadece beyaz boşluklardan


oluşan satırlar iptal edilir. UNIX'in yapısında olduğu gibi bir satır "\"
(ters bölü) işareti ile sonlandırılır ise, bu satırın bir sonraki satırda
devam ettiği anlaşılır.
Parametreye göre değişen değerler; bir cümle, doğru-yanlış (Yes/No)
veya bir sayı olabilir. Bir parametrenin değerini doğru yapacaksanız,
"true", "yes", veya "1"; yanlış yapacaksanız, "false", "no" veya "0"
değerlerini atayabilirsiniz. Bu tip parametrelerde harf büyüklüğü
önemli değilken, cümle değerlerinde harf büyüklüğü korunur.
Unutmayın hiçbir zaman tırnak işareti kullanmıyoruz. Eğer bu
işaretlerden birisi bulunacak olursa onlar iptal edilirler. şekil 5.1'e
bakınız
ıki cins parametre mevcuttur: genel (global) ve hizmet (service). Genel
parametreler Samba'nın bütün davranışını denetlemek için
kullanılırlar ve bir yapılandırma dosyasında sadece bir kere
bulunurlar. Örnek olarak, sunucunun NetBIOS ismi, güvenlik
politikası verilebilir. Hizmet parametreleri, belirli bir hizmetin
davranışını yapılandırmak için kullanılırlar. Örneğin, paylaştırılan
dizinin yolu (path), paylaşımın ismi, erişim denetimi ... gibi.

Makrolar
Her cümle parametresi aşağıdaki yerine konulan cümlelerden
birisini içerebilir. Bunlar iki tip makrodur: bazıları her zaman
kullanılabilir, bazıları ise "paylaşım bağlamında" kullanılabilir. ıkisi
arasındaki farkı anlayabilmek için şu örneklere bakın: %U, oturum
açıldığında kullanıcının Samba'ya sağladığı isim iken, %u Samba'nın
oturum boyunca kullanıcıyı denetlediği kullanıcı ismidir. %u
paylaşım bağlamında olduğundan (istemci onaylandıktan sonra
veriliyor) her zaman kullanılamaz.

22 © Mustafa Başer & Görkem Çetin - 2007


Makrolar

Her Zaman Kullanılabilen Makrolar:


• %U: Oturumdaki kullanıcı ismi. Bu kullanıcının sunucuya
sağladığı isimdir, UNIX kullanıcı hesabı ismi ile aynı olma
zorunluluğu yoktur. Gerekmedikçe %u yerine %U kullanılmalıdır.
Misafir (guest) girişleri diğer kullanıcılar gibi kullanıcı ismi
eşlemesinden etkilenirler ve %u'dan farklı olabilirler.
• %G: %U ile tanımlanan kullanıcının ana grubu.
• %M: ıstemcinin küçük harflerden oluşan DNS ismi.
• %I: ıstemci makinanın IP adresi.
• %m: ıstemci makinanın NetBIOS ismi.
• %h: Samba'nın çalıştığı makinanın DNS ismi
• %L: Sunucunun küçük harflerden oluşan NetBIOS ismi.
• %a: ıstemci makinanın işletim sistemi. Sadece bazıları anlaşılıyor
ve bunlar da %100 doğru olmayabiliyor. şu anda Samba,
Win3.11, WinNT ve Win95 sistemlerini anlayabilmektedir.
Bunların dışındakiler bilinmeyen anlamında "UNKNOWN" olarak
tanımlanırlar.
• %N: amd.conf dosyasından elde edilen NIS sunucusunun ismi.
• %T: Tarih ve zaman.
• %d: O anki sunucunun süreç numarası (id).
Sadece Paylaşım Bağlamında Kullanılabilen Makrolar
• %H: %u ile belirlenen kullanıcının ev dizini.
• %P: Eğer tanımlanmışsa, o andaki hizmetin ana dizini.
• %S: Eğer tanımlanmışsa, o andaki hizmetin ismi.
• %g: %u ile belirlenen kullanıcının ana grubu.
• %u: Eğer tanımlanmışsa o andaki hizmetin kullanıcı ismi.

Özel Bölümler
Ağ bölümü dışındaki her bölüm "Özel Bölüm" olarak nitelendirilir.
Samba'nın tüm davranışının yapılandırıldığı, ve diğer bölümlerde
belirtilmeyen yapılandırmaların yazıldığı bölüm olan [global] bölümü
bunların dışındadır. Üç tane özel bölüm vardır. Bunlar [global],
[homes] ve [printers] bölümleridir. Bunların yapısı aşağıda detayı ile
sunulmuştur.

© Mustafa Başer & Görkem Çetin - 2007 23


5. Samba Genel Yapılandırma Seçenekleri

Her hizmet, ya bir dosya alanı sunuculuğunu ya da yazıcı kuyruğu


sunuculuğunu tanımlar. Birincisinde paylaştırılacak olan dizin, bu
dizine olan erişim izinlerini kapsarken, yazıcı kuyruğu paylaşımında
UNIX yazıcı kuyruğunda tanımlanan bir yazıcı paylaştırılır. Teknik
olarak her dosya alanı paylaşımındaki seçenekler isteğe bağlı olarak
yazılabir. Eğer herhangi bir seçenek belirtilmemiş ise, tüm
kullanıcılar bu paylaşıma salt-okunur izni ile erişeceklerdir.

[global] Bölümü
[global] bölümündeki parametrelere atanan değerler tüm sunucu için
geçerli olan yapılandırmalardır. Bu bölümde öntanımlı
yapılandırmaları da yapabilirsiniz. Bu öntanımlı yapılandırmalar
diğer tüm hizmetler için geçerli olacaktır. Ancak bu hizmetlerde,
öntanımlı yapılandırmanın dışında özel olarak bir yapılandırma da
yapabilirsiniz.

[homes] Bölümü
[homes] bölümü kullanıcıların ev dizinlerine kolayca ulaşabilmesi
için tasarlanmıştır. Samba sunucusuna bağlanan her istemci, bazı
hizmetler için istemde bulunur. Eğer istemde bulunulan hizmet
tanımlanmamışsa, Samba /etc/passwd dosyasını gözden geçirerek
istemi eşlemeye çalışır. Eğer istemde bulunulan hizmet, bir kullanıcı
ismine eşlenirse ve istemci tarafından doğru bir parola sağlanmışsa
geçici bir sanal hizmet oluşturulur ve [homes] bölümündeki tüm
yapılandırmalar doğrultusunuda erişime izin verilir. Bu hizmet
süreklilik arzetmez, kullanıcı sunucuya bağlı kaldığı sürece vardır ve
ismi kullanıcı hesabı ile aynıdır.
ıstemci "homes" adlı bir hizmete istemde bulununduğunda, UNIX ev
dizinine bağlantı kurulur. Bu hizmet yine kullanıcı tarafından
sağlanan kullanıcı hesabı ismi ile eşleştirilir. Bu sayede bir istemci
makina doğru bir şekilde yapılandırılarak, bir çok kullanıcıya hizmet
verebilir. Örneğin giriş betikleri (logon script) yazılırken, UNIX ev
dizinlerine bağlantı kurmak için kullanıcı hesabı yerine "homes"
yazılabilir. Bunu yaparken çok dikkatli olmalısınız. Windows 95, ilk
kurulan bağlantıyı doğru kabul eder ve kullanıcıyı süreç
numarasından bağımsız kabul eder. Bağlantı kesilse bile sürekli aynı
dizine bağlantıyı korumaya çalışır. Böylelikle, Samba'ya ilk bağlantı
yapmış kullanıcının ev dizini belirli bir diske bağlanır ve kullanıcı
"log off" yapsa bile, bağlantı yapılan bu disk korunur ve sonraki
kullanıcı, önceki kullanıcının dizinine erişmiş olur.
Bu bölümde bir dizin tanımı yapılmazsa, kullanıcının /etc/passwd
dosyasında tanımlı ev dizninine bağlantı kurulur. Eğer bir dizini el
ile atamak istiyorsanız, makrolar sizin işinizi görecektir. Örneğin,

24 © Mustafa Başer & Görkem Çetin - 2007


Özel Bölümler

kullanıcılara ait UNIX ev dizinleri ile, Windows makinalardan


bağlandıkları zaman görecekleri ev diski aynı olmasını
istemiyorsanuz /pchome diye bir dizin açınız. Kullanıcıların ev
diskinin buradaki dizinlere bağlantı yapması için [homes] "path =
/pchome/%U" şeklinde bir yapılandırmaya gidebilirsiniz. Böylelikle,
[homes] paylaşımına erişmek isteyen bir kullanıcı %U makrosu ile
gösterileceğinden, /pchome altında kendisine açılmış dizine
ulaşacaktır.
[homes] bölümünde, misafir kullanıcılara erişim sağlamak için
"guest ok = yes" veya "public =yes" yapılandırmaları tamamen
geçerlidir fakat arzu edilen değildir. Bunu yaptığınızda, herhangi bir
kişinin diğer bütün kullanıcıların ev dizinlerine bağlanmasına fırsat
vermiş olursunuz.
Makroları Kullanarak [homes] bölümünün oluşturulması:
Aşağıdaki iki satır makroları kullanarak bir [homes] bölümünü
oluşturur:
[%U]
path = %H

[printers] Bölümü
smb.conf dosyasının içerisinde [printers] bölümü bulunursa,
istemcilerin /etc/printcap dosyasındaki yazıcılardan çıktı alabilirler.
Bu dosya içerisinde tanımlanan UNIX yazıcısı bir yerel yazıcı, başka
bir SMB yazıcısı, Novell yazıcısı, Mac yazıcısı veya başka bir yazıcı
olabilir, yeter ki UNIX'ten düzgün çıktı alınabilen bir yazıcı olsun. Bir
kullanıcı smb.conf dosyasında tanımlanmayan bir hizmete istemde
bulunacak olursa, Samba bu isteğin geçerli bir kullanıcı ismine denk
düşüp düşmediğine bakar, eğer kullanıcı hesabı veya ev dizini yoksa
ve [printer] bölümü de yazılmışsa, bu istemin geçerli bir yazıcıya
denk düşüp düşmediğine bakar. /etc/printacap dosyasında
tanımlanan herhangi bir yazıcı ya da takma yazıcı (alias) geçerli bir
yazıcı olarak algılanır. Yazıcı yapılandırma örnekleri 103 sayfadadır.

Yapılandırma Dosyası Seçenekleri


config file
Öntanımlı:
Yok, öntanımlı yapılandırma dosyasını kullan.
Örnek:
config file = /usr/local/Samba/lib/smb.conf.%m
include
© Mustafa Başer & Görkem Çetin - 2007 25
5. Samba Genel Yapılandırma Seçenekleri

Öntanımlı:
Yok, yani başka bir dosya kullanılmıyor
Örnek:
include = /usr/local/Samba/lib/smb.con.%L
"config file" seçeneği size, smb.conf dosyasının derlenme sırasında
belirtilen öntanımlı dizininden başka bir yerdeki yapılandırma
dosyasını kullanmanıza fırsatı tanır. Elbetteki smb.conf dosyası
derleme sırasında belirttiğiniz yerde yada smbd sunucusunu
çalıştırırken parametre olarak vereceğiniz dizinde bulunmak
zorundadır. Ancak bu smb.conf dosyası yerine başka bir dizindeki
yapılandırma dosyasını "config file" seçeneği ile kullanabilirsiniz.
Yumurta-tavuk bilmecesi gibi bir şey. Makrolar yardımı ile değşik
kullanıcılar veya istemci makinalar için değişik smb.conf dosyalarını
kullanmanıza imkan tanır. Yani bir anlamda "sanal sunucu" veya
çok kişilikli sunucu gibi davranır. Eğer bu seçenekte belirtilen dosya
bulunmazsa, öntanımlı yapılandırma dosyası yüklenmeye devam
eder.
şartlı yapılandırma dosyalarını oluşturmak için, tüm smb.conf
dosyasını yenilemek yerine, "include" seçeneğini tercih edin.
"include" seçeneği, halihazırdaki yapılandırma dosyasına bir başka
dosyanın eklenmesini de sağlar. Bir smb.conf dosyası içerisinde
birden fazla "include" seçeneği kullanabilirsiniz.
Paylaşım bağlamındaki makroların hiçbirisi "include" ve "config file"
seçeneğinde çalışmaz. Eğer belirtilen dosya yerinde bulunmazsa, o
dosyanın yüklenmesi iptal edilir.
Bu iki parametre kullanılarak değişik işletim sistemlerine sahip
makinalar için değişik yapılandırma dosyaları yükleyip, sunucunuzu
sanki farklı Samba sunucularıymış gibi davranmasını
sağlayabilirsiniz. Örneğin "include =
/usr/local/Samba/lib/smb.conf.%a" satırı bu işi yapacaktır.

Tarama Seçenekleri
Bu seçenekler, Samba'nın tarama listesinde nasıl görüneceğini ve
diğer ağ tarayıcı elemanları ile nasıl bir işbirliğine gireceğini
denetlemek için kullanılırlar.

İsmlendirme
NetBIOS ısmini Belirtme
netbios name

26 © Mustafa Başer & Görkem Çetin - 2007


Tarama Seçenekleri

Öntanımlı:
Sunucunun DNS isminin ilk kısmı (host)
Örnek:
netbios name = mbaser
"netbios name" parametresi, nmbd'nin Samba'yı ağda hangi isimle
duyuracağını belirtir. Öntanımlı olarak, bir Samba sunucusu ağ
tarama listesinde, üzerinde çalıştığı makinanın DNS adının ilk kısmı
ile görünür. Örneğin, gorkem.firma.com adlı makinada çalışan
Samba sunucusu, ağa kendisini gorkem olarak duyurur. Eğer bu
isim yerine Samba'nızın başka bir isimle görünmesini istiyorsanız,
"netbios name" parametresini kullanmalısınız.
netbios aliases
Öntanımlı:
Yok
Örnek:
netbios aliases = kuddusi dilek fatih
"netbios alias" parametresi Samba sunucunuzun birdan fazla takma
ad ile ağ tarama listesinde görünmesini sağlar. Bu parametreye
atanacak isimler, beyaz boşluklarla birbirinden ayrılırlar. Bu
seçeneği %m makrosu ile birlikte kullanarak, istemci makinaların
NetBIOS isimlerine göre sanal Samba sunucuları oluşturmak
mümkündür.

Çalışma Grubunu Belirtme


workgroup
Öntanımlı:
workgroup = WORKGROUP (derleme sırasında değiştirilebilir)
Örnek:
workgroup = meyve
"workgroup" parametresi, Samba'nın ağ tarama listesinde hangi
çalışma grubunda (ya da NT alanında) görüneceğini belirtmek için
kullanılır. Eğer bu parametreyi düzgün yapılandırmazsanız, tarama
da düzgün çalışmayacaktır.

Sunucu Açıklama Satırı


server string

© Mustafa Başer & Görkem Çetin - 2007 27


5. Samba Genel Yapılandırma Seçenekleri

Öntanımlı:
server string = Samba %v
Örnek:
server string = Resim Bolumu Dosya Sunucusu
Eğer tarama listesinde dikkat etmiş iseniz, sunucuların yanlarında
bunlara ait bir açıklama (yorum) cümleleri vardır. Bu açıklamaları
"server string" parametresi kullanarak atayabilirsiniz. Bu yorum
cümlesi aynı zamanda yazdırma yöneticisinde de görünecektir.

Tarama Listesine Hizmetleri Elle Eklemek


auto services
Öntanımlı:
Yok
Örnek:
auto services = programlar ms-ofis97 internet
"auto services" veya "preload" parametresine, aralarında beyaz
boşluklardan oluşan hizmet isimleri atanır. Bu sayede buraya
yazılan hizmetler otomatik olarak tarama listesinde görünürler.
Bunu en çok [homes] ve [printers] hizmetleri için kullanırız, böylece
tarama listesinde görünebilirler. Eğer bu parametreye yukarıdaki
hizmetleri eklemez seniz tarama listesinde görünmeyeceklerdir. Bu
parametreye eklediğiniz hizmetleri mutlaka tanımlayın, aksi halde
olmayan bir hizmet var imiş gibi görünecek ve erişmek isteyen
kullanıcılar hata ile karşılaşacaktır.
Eğer /etc/printcap dosyasındaki tanımlanmış tüm yazıcıların tarama
listesinde görünmesini istiyorsanız "load printers" parametresi sizin
için daha kolay olacaktır.

Öntanımlı Hizmeti Belirtme


default service
Öntanımlı:
Yok
Örnek:
default service = genel
Eşleniği:
default
"default service" parametresi, istemcilerden birisi, tanımlanmamış bir
hizmete erişmek istediklerinde bağlantının kurulacağı hizmeti

28 © Mustafa Başer & Görkem Çetin - 2007


Tarama Seçenekleri

belirtmek için kullanılır. Tipik olarak, her sunucuda bulunan ve


herkese açık olan çok kullanılan programların bulunduğu genel
(public) paylaşımı vardır ve bu parametrenin değeri de bu hizmet
yapılandırabilir. Dikkatiniz çekmişse ne "auto services"
parametresinde ne de "default services" parametresinde hizmetler
köşeli parantez içinde yazılmamıştır.

Tarayıcı Seçimini Etkileme


Tarayıcı seçimi protolokolü, bir NT alanında veya bir çalışma
grubunda ana ve yedek tarayıcıyı belirler.

Samba'nın Ana Tarayıcı Olma şansını Etkilemek


Ağınızda Samba'yı Ana Alan Tarayıcısı (AAT), Yerel Alan Tarayıcısı
(YAT) ya da WINS sunucusu olarak kullanmak istiyorsanız bu
bölümü dikkatle okuduktan sonara sayfa 139'daki "Samba'da
Tarama" başlıklı konumuza bakınız.

Tarayıcı Seçimini Etkileme

Samba'nın Ana Tarayıcı Olma şansını Artırma


local master
Öntanımlı:
local master = yes
Örnek:
local master = no
"local master" seçeneği doğrulanacak (=yes) olursa, nmbd sunucusu
Yerel Ana Tarayıcı (YAT) olmaya çalışacaktır. Eğer doğrulanmaz ise
(=no), nmbd YAT olma girişiminde bulunmayacaktır ve tüm seçimleri
kaybedecektir. Bu değerin doğrulanmış olması, nmbd'nin her zaman
seçimleri kazanarak YAT olacağı anlamını taşımaz. Sadece seçimlere
katılacak ve kazanmaya çalışacaktır. Kazanma şansını artırmak için
bazı seçeneklerde değişiklikler yapmak durumundasınız. Bu
seçeneklerin ne olduğunu aşağıdaki satırlarda göreceksiniz.
preferred master

© Mustafa Başer & Görkem Çetin - 2007 29


5. Samba Genel Yapılandırma Seçenekleri

Öntanımlı:
preferred master = no
Örnek:
preferred master =yes
Bu parametrenin değerini doğru yapacak olursanız nmbd Samba'nın
seçimlerde "tercih edilen" tarayıcı olduğunu duyuracaktır. Bu
duyuru ile, eğer Samba ağ üzerine gelen ilk makina ise, seçimleride
bir baskı uygulayacak ve büyük bir ihtimalle de kazanarak "ana
tarayıcı" olacaktır.
Samba'nın alan tarayıcısı olmasını istiyorsanız, bu seçeneğin
değerini doğrulamalısınız. Alanınızda bir NT sunucusu var ise, en
iyisi bu seçeneği olduğu gibi bırakmak ve alan tarayıcılığı görevini
NT'ye bırakmaktır. (Bu kitabı okuduğunuza göre, ağınızda ya bir NT
sunucusu yok veya onda kurtulmaya çalışıyorsunuz demektir!)
os level
Öntanımlı:
os level = 0
Örnek:
os level = 33
"os level" seçeneği, Samba'nın tarayıcı seçimlerinde kendisinin hangi
düzeyde bir işletim sistemine sahip olduğunu duyurmasında
kullanılır. Öntanımlı olarak "os level" parametresinin değeri sıfırdır
ve böylelikle, tüm tarayıcı seçimlerini Samba'nız kaybedecektir. Eğer
Samba'nın ana tarayıcı olmasını istiyorsanız bu seçeneğin değerini
en azından NT alanınızdaki en yüksek işletim sisteminin değerine
eşit yapmalısınız. Mutlak surette Samba'yı ana tarayıcı olarak
kullanacaksanız, o zaman alanınızdaki en yüksek işletim sistemi
seviyesine çıkartmalısınız. ışletim sistemleri ve bunların düzeyi şu
şekildedir:
ışletim Sistemi Düzeyi (os level)
Windows NT Server 4.0 33
Windows NT Server 3.51 32
Windows NT Workstation 4.0 17
Windows NT 3.51 16
Windows 98 1
Windows 95 1
Çalışma Grupları için Windows 1

30 © Mustafa Başer & Görkem Çetin - 2007


Tarayıcı Seçimini Etkileme

Alt Ağlar Arası Taramayı Gerçekleştirme


Alt ağlar arasında düzgün bir tarama yapmak istiyorsanız, bu
bölümdeki bilgiler sizin için son derece yararlıdır. Bu bölümü
okuduktan sonra "Samba'da Tarama" konulu bölüme bakmalısınız
(sayfa 139). Burada sadece parametrelerin nasıl kullanılacağını
öğreneceksiniz.
wins server
Öntanımlı:
Yok
Örenk:
wins server = penguen.firma.com
Alt ağlarda taramanın mümkün olabilemesi için, ağınızda mutlaka
bir WINS sunucusu bulunmak zorundadır. WINS sunucusu, alt
ağlardaki makinaların NetBIOS isimlerinin kaydını tutmakla
sorumludur. WINS sunucusunu TCP/IP ağlarındaki DNS sunucusu
ile karşılaştırabilirsiniz. TCP/IP ağlarında DNS hangi görevi
yapıyorsa, Microsoft ağlarında da WINS sunucusu o görevi yapar.
Bu seçeneğin değeri ile "wins support" seçeneğinin değerini aynı
anda doğrulamak bir hataya meydan verir.
domain master
Öntanımlı:
domain master = no
Örnek:
domain master = yes
Doğru bir şekilde yapılandırıldığı taktirde nmbd Ana Alan Tarayıcısı
(AAT) olarak görev yapabilir. Bunu yapmak için "domain master"
seçeneğini doğrulamalısınız. Bunu yaptığınız taktirde, birbirinden
ayrı olan ağlardaki Yerel Ana Tarayıcılar (YAT) Samba ile bağlantı
kurarak NT alanının tüm tarama listesini isterler (ve kendilerindeki
listeyi de verirler). Eğer ağınızda bir Windows NT sunucusu var ise,
muhtemelen bu sunucuyu AAT olarak kullanacaksınız. Daha detaylı
bilgi için "Samba'da Tarama" başlıklı bölüme bakmanızı tavsiye
ederiz.
remote anounce
Öntanımlı:
Yok

© Mustafa Başer & Görkem Çetin - 2007 31


5. Samba Genel Yapılandırma Seçenekleri

Örnek:
remote anounce = 192.168.1.255/penguen
"remote anounce", ağlar arası tarama sorununuzu teknik olarak
çözmek için kullanabileceğiniz bir seçenektir. Bu seçenek sayesinde
Samba ağınızda, kendisini belirttiğiniz IP ve Çalışma Grubu (ya da
NT alanı) olarak duyurur.
Ağlar arası, düzgün çalışan bir tarama işlemi yapmak istiyorsanız,
bir WINS sunucusuna sahip olmanız gerekir. Fakat bazı
durumlarda, bu seçeneği kullanarak, daha karmaşık bir yöntem
olan WINS sunucusuna ihtiyacınız olmayacaktır.
Bu seçeneği kullandığınızda, Samba kendisini uzaktaki ağlara
duyuracak, ve eğer durağan bir ağa sahipseniz, Ana Taryıcı olarak
görev yapabilecektir.

Samba'nın WINS Sunucusu Olarak Kullanılması


wins support
Öntanımlı:
wins support = no
Örnek:
wins support = yes
Samba'nın bir WINS sunucusu olarak görev yapıp yapmayacağını
"wins support" seçeneği kullanılarak ayarlanabilir. Unutmayın,
Samba şimdilik, kendisine ait WINS veritabanını Micorsoft WINS
sunucuları ile paylaşamıyor. Eğer ağınızda bir Windows NT
sunucusu var ise, bunu WINS sunucusu olarak yapılandırmanız
daha iyi olacaktır (O zaman niye bu kitabı okuyorsunuz ki?).
remote browse sync
Öntanımlı:
Yok
Örnek:
remote browse sync = 192.168.1.255 192.168.2.255
Bu paramatre sayesinde, Samba ara sıra uzak ağlardaki Yerel Ana
Tarayıcılar'a istekte bulunarak, kendisindeki tarama listesi ile
onlardaki tarama listesini eş zamanlı kılmasını sağlar. Bu seçeneğin
kullanılması, aralarında yönlendiriciler bulunan dağınık ağlarda
tarama listesinin, yerel tarama listeleri ile eş zamanlı kılınmasını
sağlamaktadır. Normal olarak, uzaktaki ağlar için duyuru adresi
(broadcast address) tanımlanır. Ancak ağınız yeteri kadar kararlı ise
bir makinayı da belirtebilirsiniz. Unutmayın ki, bir IP adresi

32 © Mustafa Başer & Görkem Çetin - 2007


Tarayıcı Seçimini Etkileme

tanımlarsanız, Samba o makinanın gerçekten erişilebilir olduğunu


doğrulamayacak, dinleyecek ve fakat gerçekten YAT olup olmadığını
sorgulamayacaktır. Eğer duyuru adresi belirtirseniz, Samba
gerçekten bir YAT'a bağlantı kurup kurmadığını sorgulamaz.

Eski İstemcilerden Gelen İstekleri Cevaplamak üzere


Samba'nın Proxy Olarak Kullanılması
wins proxy
Öntanımlı:
wins proxy = no
Örnek:
wins proxy = yes
Samba, diğer istemcilerden gelen isim sorgulama duyurularına,
WINS sunucusuna danışarak cevap verebilir. Bu tür istemler, ya
WINS sunucusuna sorgu yapamayan istemciler, ya da WINS
yapılandırılması doğru yapılmayan istemciler için yararlı olabilir.
"wins proxy" seçeneğini doğrulayarak, Samba'nın ağınızdaki WINS
sunucusu ile iyi geçinemeyen istemcilere proxy olarak davranmasını
sağlayabilrisiniz.

DNS Kullanarak WINS Sorgularını Çözümleme


dns proxy
Öntanımlı:
dns proxy = yes
Örnek:
dns proxy = no
Eğer bu seçeneği doğrulayacak olursanız ve nmbd'yi de WINS
sunucusu olarak kullanıyorsanız, kayıtsız olan bir NetBIOS ismine
sorgulama gelirse Samba bu ismi DNS kullanarak çözümler.
Bir NetBIOS ismi için kullanabileceğiniz uzunluk 15 karakteri
geçemeyeceğinden DNS isimlerinde de buna dikkat etmelisiniz.
nmbd'nin DNS sorgulaması bitene kadar başka bir istemciye cevap
veremeyeceğini de aklınızdan çıkartmayın. Eğer DNS çözümlemeniz
hızlı ise bu seçeneği doğru (yes) olarak bırakabilirsiniz, aksi halde
nmbd'nin hizmetlerinde kesintiler meydana gelecektir.

© Mustafa Başer & Görkem Çetin - 2007 33


5. Samba Genel Yapılandırma Seçenekleri

Duyurulan Tarayıcı Tipi ve Sürümünü Değiştirme


announce as
Öntanımlı:
announce as = NT
Örnek:
announce as = Win95
"announce as" seçeneği ile, nmbd'nin kendisini hangi türden bir
tarayıcı olduğunu duyurması gerektiğini ayarlayabilirsiniz. Geçerli
seçenekler ve bunların hangi işletim sistemlerinini ifade ettiği
aşağıdaki tablodadır:
Seçenek Karşılık Gelen ışletim Sistemi
NT, NTServer Windows NT Server
NTWorkstation Windows NT Workstation
Win95 Windows 95
WfW Çalışma Grupları için Windows (ÇGW)

Öntanımlı olarak Windows NT olarak yapılandırılmıştır. Eğer ne


yaptığınızı bilmiyorsanız ve Samba'nın Microsoft ağlarında Windows
NT gibi görünmemesi için geçerli bir sebebiniz yoksa, öntanımlı
değeri değiştirmeyin. Bu değerin değiştirilmesi, Samba'nın
yetenekleri ile çakışabilir ve Ana Tarayıcı veya Yedek Tarayıcı olarak
devranmasına neden olabilir.
announce version
Öntanımlı:
announce version = 4.2
Örnek:
announce version = 2.0
"announce version" parametresi ile nmbd'nin kendisini sunucu
olarak duyururken major ve minor sürüm numaraları kullanmasını
sağlarsınız. Samba'nın altdüzey sunucusu olarak kullanılması için
geçerli bir nedeniniz olmadığı sürece öntanımlı değerini
değiştirmeyin.

34 © Mustafa Başer & Görkem Çetin - 2007


Ağ Seçenekleri

Ağ Seçenekleri

Ağ Arayüzünün Yapılandırılması
Birden Fazla Ağ Kartı ıle Çalışmak
interfaces
Öntanımlı:
Ana ağ kartı ve maskesi
Örnek:
interfaces = 192.168.1.1/24 198.168.2.20/24
Birçok makina birden çok ağ arayüzüne (kartına) sahiptir.
"interfaces" seçeneği Samba'nın hangi arayüzden hizmet vereceğini
ayarlamanızı sağlayacaktır. Bunu arayüzlerin sahip olduğu
IP/maske listesini bu parametreye atayarak yapabilirsiniz. Maskeyi
yazarken ister bit uzunluğunu isterseniz, alışılagelmiş noktalı
biçimde yazabilirsiniz.
Örneğin aşağıdaki satır ile yukarıda verdiğimiz örnekteki satır
birbirine eştir:
interfaces = 192.168.1.1/255.255.255.0 192.168.2.20/
255.255.255.0
Eğer bu seçeneği vermemiş iseniz ve makinanızda birden çok ağ
arayüzü varsa, Samba ana arayüzü ve maskesini belirlemeye
çalışacaktır. Samba hiçbir zaman birden fazla arayüzü bulmaya
çalışmaz. Eğer makinanızda birden fazla ağ kartı bulunuyorsa bu
seçeneği de mutlaka vermelisiniz. Hatta Samba'nın ana ağ
arayüzünden hizmet vermek istiyor olsanız bile. Zira Samba bazen
yanlış arayüzü tahmin edebilir.
bind interfaces only
Öntanımlı:
bind interfaces only = no
Örnek:
bind interfaces only = yes
Samba'nın 1.9.18 sürümünden sonra görmeye başladığımız bu
seçenek ile nmbd ve smbd'yi az da olsa farklı biçimde etkilemektedir.
ısim sunuculuğu için bu parametre, nmbd'yi interfaces seçeneğinde
belirtilen arayüzlerde 137 ve 138. porta bağlamaktadır. Normal
olarak, ağa yeni katılan bir makina ismini duyurduğunda, nmbd ağ
aryüzlerinin hepsini dinleyerek bu ismi algılar. interfaces

© Mustafa Başer & Görkem Çetin - 2007 35


5. Samba Genel Yapılandırma Seçenekleri

seçeneğinde belirtilmeyen herhangi bir ağa ait paket gelirse göz ardı
edilir.
Bu parametreyi, Samba sunucusuna PPP ile bağlanacak istemciler
var ise kullanmayın. Bu durumda bazı tehlikeler doğabilir. Eğer
böyle bir bağlantı yapılacak ise, ne yaptığınızdan emin olmadan bu
seçeneği kullanmayın.
socket address
Öntanımlı:
Her porttaki bağlantılara cevap verir
Örnek:
socket address = 192.168.1.1
Birden fazla ağ arayüzüne (kartına) sahip sistemlerde"socket
address" seçeneği ile smbd ve nmbd'nin hangi arayüzdeki isteklere
cevap vereceğini belirtir. Eğer Samba'nın bağlı bulunduğunuz tüm
ağlardaki isteklere cevap vermesini istiyorsanız, bu seçeneği
yapılandırmak sizin için gereksizdir. Samba sadece bir ağ
arayüzündeki isteklere cevap verecekse, o zaman bu yapılandırmayı
yapmanızın en azından performansı artırıcı etkisi olacaktır. Eğer
makinanız hem bir yönlendirici hem de Samba ile dosya sunuculuğu
yapıyorsa (ki çoğu zaman bu böyledir), o zaman dış dünyaya bakan
ağ arayüzünüzünü (kartını) dinlemeniz bir anlam ifade etmeyecektir.
Samba'yı çok iyi anladıysanız bu seçeneği kullanın, aksi taktirde
Samba duyuru paketlerini dinlemeyi durdurabilir.
"socket address" seçeneğinin ancak Samba'yı deamon olarak
kullanıyorsanız (yani inetd'den çalıştırmıyorsanız) bir etkisinin
olacağını da hatırlatalım.

En Yüksek SMB Protokol Uzantısını Tanımlama


protocol
Öntanımlı:
protocol = NT1
Örnek:
protocol = COREPLUS
Bu seçenek istemci ile konuşurken en yüksek protokol uzantısını
belirler. Normal olarak Samba istemci ile konuşurken uygun bir
protokole bırakılmalıdır. Ancak bazı durumlarda başka bir değeri
kullanmak gerekebilir.
Kullanabileceğiniz değerler şunlardır: CORE, COREPLUS, LANMAN1,
LANMAN2 ve NT. Bu uzantıların geniş açıklamalarını sayfa 11'de
bulabilirsiniz
36 © Mustafa Başer & Görkem Çetin - 2007
Ağ Seçenekleri

En Yüksek SMB Paket Büyüklüğünü Tanımlama


max xmit
Öntanımlı:
max xmit = 65535
Örnek:
max xmit = 8192
Samba'nın istemci ile konuşurken kullanacağı maksimum paket
büyüklüğünü ayarlar. Bu değer ile smbd'nin istemcilerle
konuşurken en çok hangi büyüklükteki paketleri kabul edeceğini
belirler ve bunu istemciye oturum açıldığında bildirir. Bazı
durumlarda, örneğin Çalışma Grupları için Windows istemcilerinde,
küçük paketlerin kullanılması performansı artırabilir.

Ağ Performansını Artırma
Ham Okuma (raw read) ve Yazma (raw write) Desteği
read raw
Öntanımlı:
read raw = yes
Örnek:
read raw = no
write raw
Öntanımlı:
write raw = yes
Örnek:
write raw = no
Ham okuma ve yazma, her bir pakette, 65535 bayt verinin
yollanmasını ve alınmasını sağlar ve performansta önemli bir artış
oluşturabilir. Samba öntanımlı olarak ham okuma ve yazmayı
destekler.

ıstemcinin Cevap Vermediğini Belirleme


keep alive
Öntanımlı:
keep alive = 0
(canlı-tutma paketinin gönderilmeyeceği anlamına gelir)

© Mustafa Başer & Görkem Çetin - 2007 37


5. Samba Genel Yapılandırma Seçenekleri

Örnek:
keep alive = 60
Bu parametre NetBIOS "canlı-tutma" paketlerinin hengi sıklıkla
gönderileceğini ayarlar. Sunucu bu paketler sayesinde istemcinin
canlı ve cevap veriyor olduğunu anlar.

Aylak ıstemcileri Dışlamak


dead time
Öntanımlı:
dead time = 0
Örnek:
dead time = 15
Aktif olmayan istemciler hiçbir iş yapmasalar bile sunucu kaynağını
tüketirler. Her istemci, hiç bir iş yapmasa bile, bir sunucu sürecine
sahiptir bu da bellek ve işlemci zamanını harcar. "dead time"
seçeneği bir tamsayı kabul eder ve aktif olmayan bağlantıların
koparılmasından önce ne kadar sürenin geçeceğini ayarlar. Ölü
zaman (dead time), istemcinin açık dosya bulundurmadığı andan
itibaren başlar. Aktif olmayan istemci ile bağlantı kopartıldığında
ölüm zamanı sayacı da durur. Birçok istemcinin otomatik tekrar
bağlanma özelliği olduğundan, kopan bağlantıdan kullanıcının
haberi olmayacaktır.

Kullanıcıların Doğrulanması
Güvenilir ve görünür bir hizmet sunmak Samba'nın sırlı
sorunlarından birisidir. Aslında sorunun kaynağı Windows
sistemindeki "kullanıcı" kavramından gelmektedir. UNIX baştan beri
çok kullanıcılı bir işletim sistemidir. Bu nedenle, kullanıcı hakları
kavramı tüm sistemde titizlikle korunur. Her süreç ve dosya bir
kullanıcı ve gruba aittir, bu kullanıcı ve gruba verilen izinlerin
dışında herhangi bir işlem yürütemezler. Windows NT'ye kadar,
Windows ve OS/2 belli belirsiz bir kullanıcı kavramına sahipti ve
doğal olarak böyle bir kullanıcı kavramında onlara verilen izinler de
aynı belirsizlikteydi. Başlangıçta kişisel bilgisayarlar için tasarlanan
işletim sistemleri tek kullanıcılı düzeyde kalmış ve ağ ortamından
erişim düşünülmemişti. SMB'ye yerel ağlarda dosya ve yazıcı
paylaşımı özelliğinin katılması ile birlikte Windows da kullanıcı ve
hakları ile ilgilenmek zorunda kalmıştır.

38 © Mustafa Başer & Görkem Çetin - 2007


Kullanıcıların Doğrulanması

Kullanıcı/parola Onay Süreci


Kullanıcıların doğrulanma süreci, Samba'nın paylaşım düzeyi veya
kullanıcı düzeyi onayında çalışıp çalışmadığın bağlıdır. "security =
server", seçeneği kullanıcı düzeyi onayının bir çeşididir. Samba'nın
hangi tür parola doğrulama tekniği ile yapılandırıldığı kullanılarak,
her bir basamakta eğer verilen kullanıcı ismi geçerli ise parola doğru
olarak kabul edilir. Kullanıcı doğrulandıktan sonra erişim hakları
şu şeklide belirlenir: Doğrulanan kullanıcının kullanıcı numarası
(userid) ile sunucunun bu istemci için aktif olan kullanıcı numarası
arasında anahtarlama yapılır.
Kullanıcı düzeyi kullanılarak bir hizmete bağlantı yapıldığında,
kullanıcı içerisinde kullanıcı ismi ve parola (şifrelenmiş olabilir)
bulunan SMB oturum başlangıcı (sessetupX) gönderir. Eğer istemci
doğru bir parola göndermiş ise, sunucu oturum belirteci (session
identifier) gönderir. ıstemci bundan sonra paylaşıma bağlanırken bu
belirteci kullanır.
Buna karşılık, paylaşım düzeyi kullanan hizmetler bağlantı yapacak
istemciler için SMB oturum açma basamağına ihtiyaç yoktur. ıhtiyaç
olmamasına rağmen, istemci içerisinde kullanıcı ismi bulunan SMB
oturum başlangıcı gönderebilir.
Her bağlantı çeşidinde "misafir giriş" (guest login) kavramı farklı
algılanır. Paylaşım düzeyi güvenliği altında, misafir girişler bir
hizmete bağlantı yapılırken boş bir parola ile kabul edilir. Kullanıcı
düzeyi güvenliğinde ise, misafir girişler, içerisinde boş bir kullanıcı
ismi ve boş bir parola bulunan SMB oturum başlangıcı ile kabul
edilir. Tarama listelerinin dağıtılması bu yolla gerçekleşir. Maalesef,
Microsof'tun istemci tasarımından dolayı, sunucuya bağlantı
yapılırken boş bir parola ve kullanıcı ismi sağlamak çok zordur.
Bundan dolayı kullanıcı paylaşım seviyesinde, misafir giriş sağlamak
da zorlaşır. Derleme sırasında GUEST_SESSETUP seçeneği ile
misafir girişlerde hangi algoritmanın kullanılacağını
ayarlayabilirsiniz.

Paylaşım Düzeyi Onayı


Burada paylaşım düzeyinde bağlantılara nasıl izin verildiğini
basamak basamak açıklayacağız. public ve revalidate seçenekleri
aşağıda açıklayacağımız süreçleri etkiler.
1. Eğer bir hizmet guest only (guest ok veya public değil) olarak
açılmışsa, bağlantıya guest account seçeneğinde verilen
kullanıcının hakları doğrultusunda izin verilir.
2. Eğer istemci kullanıcı/parola çiftini Samba'ya vermiş ise ve
kullanıcı ismi ile parolası doğrulanırsa, istemci o kullanıcının
hakları doğrultusunda hizmete bağlantı kurar. Bu koşul, istemci

© Mustafa Başer & Görkem Çetin - 2007 39


5. Samba Genel Yapılandırma Seçenekleri

kullanıcı ismini hizmetin bir parçası olarak verse bile (örneğin,


\\sunucu\\hizmet%kullanıcı) uygulanır.
3. Eğer istemci Samba'da kayıtlı bir kullanıcı ismine sahipse
(örneğin, oturum açma isteğinde) ve şimdi de bu kullanıcı hesabı
için geçerli bir parola sunuyorsa, bağlantıya izin verilir.
4. NetBIOS ismi istemci ismi olarak alınır. Eğer sağlanan parola bu
kullanıcı ismi için doğru ise bağlantıya izin verilir.
5. ıstemci Samba ile önceki bağlantılarındaki sağladığı geçerli
kullanıcı/parolaya sahipse, ve şimdi de bu kullanıcı için doğru bir
parola sağlıyorsa bağlantıya izin verilir. Bağlantı yapılacak
hizmette revalidate seçeneği doğrulanmışsa, bu basamak atlanır.
6. Hizmette 'user' parametresi kullanılmışsa ve sağlanan parola, bu
parametreye değer olarak atanan kullanıcılardan birisine aitse,
bu kullanıcı adına bağlantıya izin verilir.
7. Eğer hizmet 'guest ok' veya 'public' olarak açılmışsa ve istemci
önceki basamakları geçememişse, 'guest account'
parametrelerinde verilen kullanıcının hakları doğrultusunda
bağlantıya izin verilir.

Kullanıcı Düzeyi Onayı


Kullanıcı düzeyi onayı, paylaşım düzeyi onayından çok daha basittir.
ıstemcinin bir hizmetten yararlanabilmesinin tek yolu, doğru bir
kullanıcı adı ve parolası sağlamaktır. Derleme sırasında
GUEST_SESSETUP seçeneğine sıfırdan farklı bir değer atanmışsa
işler biraz değişir. Kullanıcı isminin \\sunucu\hizmet%kullanıcı
şeklinde verilebileceğini de hatırınızdan çıkartmayın.
Normal bit şekilde onaylanan kullanıcılar, istedikleri hizmete o
kullanıcının izinleri doğrultusunda erişirler. Eğer erişilmek istenen
hizmetin yapılandırılmasında, 'guest only', 'force user' veya 'admin
user' parametrelerinden birisi kullanılmış ise durum biraz farklılık
arzeder.
security
Öntanımlı:
security = share
Örnek:
security = server
Eğer "security" seçeneği "share" değerine eşitlenirse, Samba
istemcilere erişimin paylaşım düzeyinde olacağını duyurur. "security"
parametresine "user" veya "server" atayacak olursanız, bu sefer
Samba, istemcilerine erişimlerin kullanıcı düzeyinde
sağlanabileceğini söyler. "server" seçeneği kullanıcı düzeyi

40 © Mustafa Başer & Görkem Çetin - 2007


Kullanıcıların Doğrulanması

seçeneğinin, kullanıcıların uzaktaki bir SMB sunucusu tarafından


onaylandığı bir çeşididir. Bunula ilgili açıklamalara daha sonra yer
vereceğiz. Windows ve OS/2 sistemlerinde, paylaşım düzeyi
güvenliğinde istemci, her hizmet için bir parola sağlamak
zorundadır. Bir hizmete salt-okunur olarak erişmek için bir parola,
yazılabilir olarak erişmek için ise başka bir parola gerekebilir. Bu
parolalar, Windows ve OS/2 sistemlerinde paylaşım yapılırken
belirlenir. Kullanıcı düzeyi güvenliği tipinde, istemcilerin
hizmetlerden yararlanabilmesi için bir kullanıcı adı ve bir parola
vermesi gerekir, ve bu kullanıcıya hangi tür bir izin verildiyse o
şekilde erişimine izin verilir.
Samba sunucusu doğal olarak, erişimlerde kullanıcı düzeyi
güvenliğini kullanır. Herhangi bir kaynağa erişim, oradaki UNIX
kullanıcısı ve grubnun izinleri doğrultusunda sağlanır. Eğer doğru
bir şekilde yapılandırılırsa, onaylanan kullanıcıların belirli
kaynaklara erişimi engellenebilir (UNIX izinleri olsa bile).
Windows makinalarının, paylaşım düzeyi güvenliğine karşı
davranışları ile kullanıcı düzeyi güvenliğine olan davranışları
farklıdır. Bir Windows makinası paylaşım düzeyinde sunucu olarak
görev yapacaksa, hizmetlerden yararlanmak isteyen istemcilerden bir
parola girmesini ister. Eğer Windows makinasını kullanıcı düzeyinde
sunucu olarak kullanmak istiyorsanız, bu sefer Windows ilk olarak,
hizmetlerinden birisine erişmek isteyen bir kullanıcının, onaylama
işini yapan sunucudan, o kullanıcının onaylanıp onaylanmdığını
sorar
Bütün bunları konuştuktan sonra, bu parametrenin
yapılandırılması oldukça kolaydır. Genel olarak kullanıcılarınız
Samba makinası ile istemci makinalarda aynı ise, bu parametrenin
değerini "user" yapabilirsiniz. Bunun dışında, Çalışma Grupları için
Windows kullanıyorsanız ve Windows kullanıcı isimleriniz ile UNIX
kullanıcı isimleriniz birbirinden farklı ise bu parametreyi "share"
yapmalısınız. Çalışma Gurupları için Windows sistemlerindeki bir
hata, "connect as" kutusundaki girdiğiniz parolayı gözardı eder.
Böylelikle, "network logon" kutucuğunda girdiğiniz kullanıcı ismi
dışındaki bir kullanıcı ismi ile hizmetlere erişmeniz olanak dışı kalır.
Paylaşım düzeyi güvenliği kullanırsanız, misafir erişimlerinin
yapılandırılması da kolaylaşmış olur.

Kullanıcı Onayı Teknikleri


Samba, kullanıcıların sağlamış olduğu kullanıcı adı ve parolasını
onaylarken üç değişik yol kullanır. Bunlardan ilki, standart UNIX
kullanıcı onayıdır. Yani verilen kullanıcı ismi ve parolasının,
/etc/passwd ve /etc/shadow dosyasındaki değerleri ile

© Mustafa Başer & Görkem Çetin - 2007 41


5. Samba Genel Yapılandırma Seçenekleri

karşılaştırılmasıdır. Bu yapılırken, eğer Samba'nın kurulu olduğu


makina NIS, DCE veya başka bir teknik kullanıyor ise ona göre
onay yapılır. ıkincisi ise şifrelenmiş parolaları, yerel makinada özel
olarak saklanan ve düz metinden oluşan parolalar ile karşılaştırarak
onay vermektir. Üçüncü yöntem ise, kullanıcı ve parolaların
geçerliliğni anlamak için bir SMB sunucusunu (örneğin Windows NT)
kullanmaktır. Seçeceğiniz teknik, güvenlik isteğinize göre olmalıdır.

Şifrelenmiş (encrypt) Parolaları Kullanmak


encrypt passwords
Öntanımlı:
encrypt passwords = no
Örnek:
encrypt passwords = yes
"encrypt passwords" seçeneği ile, Samba'nın kullanıcıları onaylarken
şifrelenmiş parolaları kullanıp kullanmayacağını yapılandırırsınız.
şifrelenmiş parolaları kullanmak ağınıza ek bir güvenlik kazandırır,
çünkü bazı kullanıcılar birtakım programlar kullanarak ağda
dolaşan paketleri yakalayabilir ve düz metinden oluşan parolaları
kendi kötü emelleri için rahatça kullanabilirler. Eğer Samba'nın
1.9.18 veya daha eski bir sürümün kullanıyorsanız ve DES
kütüphanesi ile derlememiş iseniz, bu parametrenin bir etkisi
yoktur.
Kimi durumlarda düz metin parolaları kullanmak isteyebilirsiniz. Bu
durumda nasıl bir yapılandırmaya gideceğinizi aşağıdaki bölümlerde
göreceksiniz.

Doğal UNIX Kullanıcısını Kullanarak Onay


En basit kullanıcı onayı tekniği, UNIX kullanıcıları ile onaydır. Bunu
yapmak için, smb.conf dosyanızda, "encrypt passwords = no"
yapılandırılması olması gerekir. "server" parametresine ya share ya
da user değerlerinden birisi atanmalıdır. Tanım gereği, server düzeyi
güvenliği UNIX doğal onayı değildir. Bunu kısaca açıklayalım:
Çoğu sistemde, UNIX kullanıcı onayı, /etc/password (eğer gölge
parola kullanılıyorsa bir de/etc/shadow) dosyasında tanımlı
kullanıcıların sistem tarafından onaylanmasıdır. Bunun dışında NIS
kullanarak ta kullanıcıların onayı sağlanabilir, ancak şu anda bunu
yapabilmek için derleme sırasında bir yapılandırma yapmanız
gerekir. Yeni bir kullanıcıya erişim vermek için, UNIX sisteminde bir
kullanıcı açılmalı ve erişim sağlayacak bu yeni kullanıcının smb.conf
dosyasında gerekli yerlere ulaşabilirliği sağlanmalıdır. Doğal UNIX

42 © Mustafa Başer & Görkem Çetin - 2007


Kullanıcı Onayı Teknikleri

kullanıcı onayı yapmak istiyorsanız, Samba'yı yeniden derlemek


zorunda değilsiniz, çünkü önceden derlenerek gelen paketler bunu
yapacak şekilde hazırlanmıştır.
Bu yöntemin en büyük dezavantajı, düz metin parolaların ağ
traiğinden akışıdır. Eğer, sisteminize halihazırda kullanıcılara düz
metin ile ftp ve telnet erişimi sağlıyorsanız, bu kullanıcıların
Windows makinalarından Samba'ya erişimini yapmakla güvenliğinizi
daha da kötü yapmış olmazsınız. Fakat, UNIX sisteminizde düz
metin olmayan onay tekniğini kullanıyorsanız (örneğin, Kerboros)
Samba'ya erişimde de "encrypt" edilmiş parola kullanmalısınız. Buna
ek olarak, tavsiyemiz mümkün olduğunca şifrelenmiş parolaların
kullanılması ve düz metin parolalardan uzak durulmasıdır. Bunu
yapmak en azından Samba ile kolay olduğundan herhalde "encrypt"
edilmiş parola yöntemi kullanırsınız.

Windows NT'de Düz Metin parola Onayının


Gerçekleştirilmesi
Eğer Service Pack 3 kullanıyorsanız NT istemcilerin düz metin parola
ile bağlantı yapmasını engeller. Düz metin parola ile bağlantı
yapılmasını gerçekleştirmek için REGEDIT32.EXE programını
kullanmanız gerekmektedir. Bunun için aşağıdaki anahtarı bulun:
HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\rdr\p
arameters\
Buraya EnablePlainTextPassword anahtarını ekleyin. Bir değer
girmenizi istediğinde DWORD tipini seçin ve değer olarak 1 atayın.
Bunu yapmanın en kolay ve emin yolu, Samba dökümanları ile
birlikte gelen NT4_PlainPassword.reg (sisteminizle birlikte gelen
Samba'yı kullanıyorsanız /usr/doc/samba-x.y.z/docs dizini altında
bulabilirsiniz) dosyasını bir disket yardımıyla NT'ye taşıyıp "explorer"
ile dosyasının üzerine çift tıklamak olacaktır.

Windows 95/98'de Düz Metin parola Onayının


Gerçekleştirilmesi
Windows 95'lerin son sürümleri ile Windows 98'ler sunucuya düz
metin parola göndermezler. Bunu sağlamak için REGEDIT.EXE
programını çalıştırınız ve aşağıdaki yolu takip ediniz
HKEY_LOCAL_MACHINE\system\Current\ControlSet\Services\VxD\
VNSETUP\
Sonra menü çubuğundan Edit  New  DWORD seçin. ıçeriğini, düz
metin parola göndermesini sağlamak için "New Value#1" olarak
değiştirin. Değerini 1'e eşitleyin.
Bu işi kola yoldan ve daha emin olarak yapmak istiyorsanız,
/usr/docs/samba-x.y.z/docs dizini altındaki

© Mustafa Başer & Görkem Çetin - 2007 43


5. Samba Genel Yapılandırma Seçenekleri

Win95_PlainPassword.reg dosyasını bir disket yardımıyla Win95'e


taşıyın ve "explorer" (araştır) ile üzerine çift tıklayın
Bu işlemleri yapmak çok zor olamasa bile, ağınızda bulunan her
istemcide gerçekleştirmek zaman alıcı ve sıkıcıdır. Bunun yerine
sunucuyu şifrelenmiş parolaları kabul edecek şekilde yapılandırmak
daha kolay ve güvenli olacaktır.

Tek Tip Harflerden Oluşan Parolaları Gönderen


ıstemcilerle Çalışmak
password level
Öntanımlı:
password level = 0
Örnek:
password level = 2
Bazı istemciler, girilen parolaları sunucuya göndermeden, tümünü
büyük harfe çevirirler. Bunlardan birisi Çalışma Grupları için
Windows'dur. Bu sistemler COREPLUS'tan daha üst düzeyde bir
protokol kullanan sunuculara parolaları büyük harflere
dönüştürerek gönderirler.
Bu durumda, UNIX parolası büyük küçük harflerden oluşan bir
kullanıcı, Samba'daki bir hizmetten yararlanmaya kalkıştığında işler
arap saçına dönecektir. Bu seçeneğin kullanılması ile birlikte,
Samba gelen parolaları 'alayıp beleyip', UNIX parolasına benzetmeye
çalışır.
Bu seçeneğin değerinin sıfır olması Samba'yı iki denemeye iter:
Hepsi büyük harf veya hepsi küçük harf. Sıfırdan başka bir rakamın
kullanılması, parola içerisindeki büyük harf sayısını belirtir.
Örneğin, "password level = 1" olursa, "aci" ve "ACI" parola olarak
doğru olmazsa, "Aci","aCi" ve "acI" deninir. password level = 2
yapılacak olursa, yukarıdakilere ek olarak "ACi", "aCI", "AcI" de
denenir. Daha büyük bir değer kullanmak, kullanıcının onaylanma
olasılığını rağmen güvenlik biraz düşecek ve onaylanma süresi de
yükselecektir.
Bundan dolayı, kullanıcıların, noktalama işaretleri ve sayılar
kullanması güvenliği artıracak ve onaylanma süresini azaltacaktır.
şifrelenmiş edilmiş parola kullanmak bu tür parola sorunlarını
kökten halledecektir.

44 © Mustafa Başer & Görkem Çetin - 2007


Kullanıcı Onayı Teknikleri

Büyük ve Küçük Harflerden Oluşan Kullanıcı ısimleri


ile Çalışmak
username level
Öntanımlı:
username level = 0
Örnek:
username level = 2
Çoğu SMB istemcileri kullanıcı ismini sadece büyük harfler ile
gönderir. Bu parametre Samba'nın 1.9.18 sürümünden sonra
kullanılabilir ve UNIX kullanıcı ismi büyük ve küçük harflerden
oluşan kullanıcıların onaylanmasını sağlar. Çalışma şekli yukarıda
anlattığımız password level ile aynıdır.
"username map" seçeneğinin kullanılması daha mantıklı olacaktır.
Bu seçenek ile, /etc/password dosyasındaki kullanıcı isimleri
okunurken büyük harfe dönüştürülür, zaten ağdan gelen kullanıcı
isimleri de büyük harflerden oluşacağından dolayı onaylanma süresi
kısalır. "username map" parametresi ile ilgili detaylı açıklamayı sayfa
48'de bulabilirsiniz.

Şifrelenmiş ("Encrypt" Edilmiş) Yerel Parolalar ile


Onay
Samba sunucusunda saklanan parola veritabanı ile şifrelenerek
gelen parolaların onayını sağlamak için "encypted password = yes"
seçeneğinin kullanılması gerekir. Bu durumda "server"
parametresinin değeri "user" veya "share" olmalıdır. Bu tür onay
işleminin gerçekleşebilmesi için Samba'ya ait bir parola dosyasının
oluşturulması gerekir. Bu dosyanın yapısını kısaca aşağıda
anlatacağız. Basamak basamak nasıl yapacağınızı ise sayfa 153'da
bulmanız mümkün.
şifrelenmiş parolaları kullanmanın birçok avantajı vardır. Bunları
sıra ile şu şekilde özetleyebiliriz:
• Sambaya gelen düz metin parolaların UNIX parolaları ile
eşlenmesindeki yaşanan sorunların giderilecektir.
• Düz metin parolalar kullanırsanız, Samba kendisine Windows
istemcileri tarafından yapılan her bağlantıda şifre sorar.
Samba'nın şifre sorması ve istemcinin bunu göndermesi çoğu
zaman kullanıcının haberi olmadan yapılır. Kullanıcı her ne
kadar bu işlemden rahatsız olmasa da ağ trafiğinin artacağı

© Mustafa Başer & Görkem Çetin - 2007 45


5. Samba Genel Yapılandırma Seçenekleri

muhakkaktır. şifrelenmiş parola kullandığınızda, Samba her


seferinde parolayı sormayacak ve işler biraz daha basitleşecektir.
• Windows istemcilerinin her birisinde teker teker kayıt (registery)
dosyaları ile oynayarak düz metin şifrelerin gönderilmesi için
yapılandırılmaya gerek kalmayacatır.
• Ağ güvenliğine önem veren yöneticilerin içleri rahatlayacaktır.
Elbette ki bunun bazı dezavantajları da yok değildir. Hem LAN
manager hem de Windows NT tipi şifrelenmiş edilmiş parola
onayının yöntemi ile standart UNIX parolalarının onayı aynı olmaz.
Bu nedenle UNIX makinaya hem telnet (ftp veya diğer standart UNIX
hizmetleri) hem de Samba ile ulaşacak olan kullanıcılar için iki ayrı
parola dosyasının bulunması da pek hoş değildir. Ancak, bu iki
dosyanın senkronize tutulması da imkansız değildir. Hatta iyi
yapılandırılmış bir sistemde, hiç de zor olmayan bir iştir. Bununla
birlikte, karmaşıklığı artırmak ve işi biraz zora sokmak da bir başka
dezavantajıdır.

Samba Password Dosyası


smb passwd file
Öntanımlı:
smb passwd file = /usr/local/Samba/private/smbpasswd
(derleme sırasında değiştirilebilir)
Örnek:
smb passwd file = /etc/smbpasswd
smbpasswd dosyası kullanıcılara ait parolanın hem Windwows NT
hem LanManager tipindeki 16 bitlik karmaşık halini içerir. Bu
dosyanın yeri /usr/local/Samba/private/smbpasswd ya da (özellikle
Red Hat, Mandrake ve SuSE tabanlı Linux işletim sistemlerinde)
/etc/smbpasswd olabilmektedir.
smbpasswd dosyasının yapısı ve uygulanması ile ilgili kitabınızın
sayfa 153'daki "'Encryption' Nasıl?" bölümüne bakınız.

Parolaların Onayı ıçin Başka bir SMB Sunucusunun


Kullanılması
password server
Öntanımlı:
Yok

46 © Mustafa Başer & Görkem Çetin - 2007


Kullanıcı Onayı Teknikleri

Örnek:
password server = penguen_NT
Parolaların doğruluğunun denetlenmesi için kullanabileceğiniz
üçüncü teknik ise Samba'nın parolaları başka bir SMB sunucusuna
sorması olacaktır. Bu yöntem, doğal UNIX onayı kadar basit ve
kolaydır. Samba, parolaları yerel bir veritabanından denetlemek
yerine, başka bir sunucuya (örneğin Ana Alan Denetçisi olan bir
Windows NT'ye) sorabilir. Halihazırda bulunan bir NT alanınız var
ise, UNIX'inizi bu ağa dahil etmek için kullanabileceğiniz en geçerli
yol bu olacaktır. Bu işlemi UNIX sistemlerindeki NIS ile
kullanıcıların doğrulanmasına benzetebiliriz. Kullanıcıların Samba
parolası, NT alanındaki parola ile otomatikmen aynı olacaktır. Eğer
bir kullanıcı parolasını değitirecek olursa, her iki sunucudaki
parolası de aynı anda değiştirilmiş olur. Parolaların bu şekilde
onaylanması için "security = server" ve "encrypt password = yes"
seçeneklerini kullanmanız gerektiğini unutmayın. Diğer bir önemli
nokta ise, parola onayı için kullanacağınız makinanın DNS ismini
kullanmaktır. Parola onayı yaptıracağınız sunucunun çoğu zaman
NT Ana veya Yedek Alan Denetçilieri olmasını bekleriz. Bu şekilde,
parolaların başka bir sunucuya onaylatılmasının bazı sebepleri
vardır.
Unutmayın, sunucu güvenliği düzeyinde, Windows kullanıcıları aynı
zamanda birer UNIX kullanıcıları olmak zorundadır. Samba'ya
bağlantı yapacak kullanıcıların erişmek istediği dizin ya da araca ne
şekilde erişileceği yerel bir UNIX kullanıcısının izinlerine bakılarak
belirlenir. Samba kullanıcısının bu izinleri ise /etc/passwd
dosyasında tanımlı yerel bir UNIX kullanıcısı ile eşlenerek yapılabilir.

Windows Kullanıcı ısimleri ile UNIX Kullanıcı ısimlerinin


Eşlenmesi
username map
Öntanımlı:
Kullanıcı eşlemesi yok
Örnek:
username map = /usr/local/Samba/lib/username.map
Halihazırda kullanıcılarınızın UNIX sisteminde hesapları varsa ve bu
isimler Windows makinalarda farklı ise, kullanıcıları eşlemeniz için
bir dosyaya ihtiyacınız olacaktır. Bu dosya Windows isimlerini UNIX
isimlerine eşleyerek, kullanıcıların UNIX'teki etkili kullanıcı isimleri
yerine Windows üzerinden farklı bir isimde girmeleri sağlanacaktır.
Bu dosyanın yerini "username map"parametresi ile belirtebilirsiniz.
Çoğu sistem yöneticisi bu tür dosyaları /etc dizininde bulmak iser,
buna göre:

© Mustafa Başer & Görkem Çetin - 2007 47


5. Samba Genel Yapılandırma Seçenekleri

username map = /etc/username.map


olabilir. ısim eşleme dosyasının yapısı çok basittir. Her satır bir UNIX
kullanıcı ismi ile başlar ve "=" işaretinden sonra bu isme eşlenecek
ve aralarında beyaz boşluklar bulunan kullanıcı isimlerinin listesi
yazılır. Bu liste aynı zamanda UNIX gruplarını da içerebilir ve bunlar
@gurup_ismi şeklinde yazılır. Bu gurubun üyesi olan her UNIX
kullanıcısı ismi bu listeye eklenir. Windows NT'de öntanımlı yönetici
kullanıcı hesabı olan "Administrator" veya "admin" isimlerini UNIX
"root" hesabına eşlemek için:
root = Administrator admin
şeklindeki bir satırı username.map dosyasına ekleyebilirsiniz.
Kullanıcıların eşlenmesi herhangi bir bağlantı kurulmadan hemen
önce yapılır. Örneğin \\sunucu\mbaser bağlantısı yapmışsanız ve
"mbaser" ismi "mustafa" ile eşlenmişse, aslında
\\sunucu\mustafa'ya bağlantı kurmuş olursunuz ve "mustafa"
kullanıcısına ait parolayı vermek zorundasınız.
Unutmamanız gereken diğer bir husus da, tersten eşlemenin
mümkün olmayışıdır. Bu bazı durumlarda sorun çıkartabilir,
örneğin yazıcı kuyruğundaki bir görevi silmeye çalışan kullanıcıyı
düşünün: yazdırma yöneticisindeki hiç bir görev o kullanıcıya ait
değildir, çünkü asıl UNIX hesabı adına gönderilmiştir.
Bu dosyanın sadece "root" tarafından yazılabilir durumda olması
gerekir. Dosyayı değiştirebilen herkes kolaylıkla "root" yetkisine
sahip olabilir. Aman dikkat!

Windows 95 Ağ Girişlerinin Gerçekleştirilmesi


Samba Sunucusunun Windows 95'ler için Alan Denetçisi
Olması
domain logons
Öntanımlı:
username map = no
Örnek:
username map = yes
Bu parametre Windows 95'lerin alan girişini destekler. Bu parametre
doğrulanacak olursa, Windows 95'lerin alana giriş süreçleri
onaylanır, kullanıcı denetlenir ve kaynaklar "kullanıcı güvenliği
düzeyi"nde sunulur. Güvenlik düzeyi ile ilgili seçenek sayfa 41'da
açıklanmıştır.

48 © Mustafa Başer & Görkem Çetin - 2007


Kullanıcı Onayı Teknikleri

Windows 95'lerde Gezici Profillerin Sağlanması


logon path
Öntanımlı:
logon path = \\%N\%U\profile
Örnek:
logon path = \\profil_sunucusu\ev_dizini\%U\profil
"logon path" parametresi, Samba'nın Alan Denetçiliği yaptığında
alana giirş yapan kullanıcıların profillerinin bulunduğu dizini
belirtir. Bunula ilgili yapılandırma örneğini sayfa 129'da
bulabilirsiniz.

Windows 95'lere Giriş Betiklerinin Sağlanması


logon script
Öntanımlı:
Yok
Örnek:
logon script = %U.bat
Eğer Samba'yı alan denetçisi olarak kullanacaksanız, büyük bir
ihtimalle alana giriş yapacak olan kullanıcılar için birer giriş betiği
çalıştırmak isteyeceksiniz. Bu betiğin patikasını "logon script"
parametresi ile belirtirsiniz. makroları kullanarak, çok değişik
yapılandırmalar yapabilirsiniz.
"preexec" parametresini (açıklaması sayfa 72'da) de kullanarak çok
alan girişleri oluşturabilirsiniz. "preexec" sunucu üzerinde
çalıştırılacak bir programı veya betiği belirtirken, "logon script"
istemci üzerinde çalıştırılır.

Parola ile ılgili Diğer Parametreler


Kullanıcılara Parola Sorulmadan Bağlantıya ızin Verilmesi
host equiv
Öntanımlı:
Yok

© Mustafa Başer & Görkem Çetin - 2007 49


5. Samba Genel Yapılandırma Seçenekleri

Örnek:
host equiv = /usr/local/Samba/lib/host.equiv
Bu parametre, DNS makina isimlerinin bir listesinin tutulduğu
dosyanın patikasını tanımlar. Bu dosyadaki istemcilerden bağlantı
yapmak isteyen kullanıcılara parola sorulmayacaktır.
Tahmin ettiğiniz gibi oldukça tehlikeli bir seçenektir. Bu seçeneği
istemci makinalarınız NT veya UNIX ise kullanabilirsiniz. Eğer ne
yaptğınızı gerçekten biliyorsanız veya tamamen bağımsız bir ağda
iseniz bu seçeneği kullanın.
Bu parametreyi "host allow" ile karıştırmayın. "hosts allow" seçeneği
ile sadece izin verilen makinalardan bağlantı kabul edilir ancak yine
de parola sorulur. Bu parametrenin kullanımını sayfa 65'da
görebilirsiniz.
null passwords
Öntanımlı:
null passwords = no
Örnek:
null passwords = yes
Bu parametreyi doğrulayacak olursanız, Samba parolası boş olan
istemcilerin bağlanmasına izin verir. Ne yaptığınızdan emin
olmadığınız sürece bu parametrenin değerini "yes" yapmayın.

Yerel Parolayı Değiştirecek Olan Programı Belirtme


password program
Öntanımlı:
password program = /bin/passwd
Örnek:
password program = /bin/passwd %u
Bu seçenek, kullanıcının yerel parolasının değiştirilmesi için
kullanılacak programın adını verir.
Bildiğiniz gibi birçok parola değiştirme programı iyi bir parola ister,
bazen belirli bir uzunlukta, büyük ve küçük harflerden oluşması,
sözlükte bulunan kelimelerden oluşmaması gibi. Bu kısıtlamalar
bazı istemcilerde sorunlara neden olabilir, örneğin ÇGW programı,
parolayı sunucuya göndermeden tümünü büyük harflere
dönüştürür.
Parola değiştirme programları, "root" hakları ile değil kullanıcının
hakları doğrultusunda çalıştırılır.

50 © Mustafa Başer & Görkem Çetin - 2007


Kullanıcı Onayı Teknikleri

passwd chat
Öntanımlı:
passwd chat = oldpassword* %o\n *new*password* %n\n
*newpassword* %n\n *changed*
Örnek:
passwd chat = "*Eski Sifrenizi Giriniz: * %o\n "*Yeni
Sifrenizi Giriniz: *" %n\n "*Yeni Sifrenizi Tekrar
Giriniz: *" %n\n "*Sifreniz Degistirildi*"
Bu parametre, yerel parola değiştirme programının kullanıcı ile olan
anlaşmasını belirlemek için kullanılır. Özellikle ıngilizce bilmeyen
kullanıcılar için yapılandırılması çok faydalı olur. Bu yapılandırma,
sadece kullanıcıların kendi parolalarını değiştirebilme yetkileri
olduğunda kullanılmalıdır.

Kayıt Davranışlarını Belirtme

Kayıt Dosyasının Yerini Belirtme


log file
Ön Tanım:
Derleme sırasında belirtilir.
Örnek:
log file = /usr/local/Samba/var/log.%m
"log file" seçeneği sayesinde, derleme sırasında verilen kayıt
dosyasının yerinin değiştirilmesinde kullanılır. Bu seçenek makrolar
ile kullanılabilir. Örneğin, kullanıcılara ait kayıt dosyaları, istemci
makinaların istemlerine, veya istemci işletim sistemine göre ... gibi.

Kayıt Dosyasının Büyüklüğünü Belirtme


max log size

© Mustafa Başer & Görkem Çetin - 2007 51


5. Samba Genel Yapılandırma Seçenekleri

Öntanımlı:
max log size = 5000
Örnek:
max log size = 10000
Bu seçeneği kullanırsanız, kayıt dosyanızın kilobayt cinsinden en
fazla ne kadar büyüyebileceğini ayarlarsınız. Kayıt dosyasının
büyüklüğü, sizin belirttiğiniz değeri aşarsa dosyanın ismi .old
uzantısı ile değiştirilir.

Hata Ayıklama Düzeyini Belirtme


debug level
Öntanımlı:
Komut satırında herhangi birşey belirtilmemişse değeri sıfırdır.
Örnek:
debug level = 3
Eş Anlamlısı:
log level
Hata ayıklama düzeyi, oluşacak hataların hangi detayda tutulması
gerektiğini belirtir. Herhangi bir değer belirtilmemişse, sistemin
güvenliğini yakından ilgilendiren kayıtlar dışında kayıt
tutulmayacaktır. Bu seçeneğin değeri 0 ile 10 arasında değişebilir.
Sayı büyüdükçe kayıt detayı da artar. 3 düzeyi makul bir düzeydir.
şimdi aynı Samba sunucusunun başaltılması esnasında tutulan
kayıtları bir fikir olması açısından 1. düzeyde ve 3. düzeyde verelim:
log level = 1
[1999/06/04 23:59:16, 1] smbd/server.c:main(614)
smbd version 2.0.3 started.
Copyright Andrew Tridgell 1992-1998
[1999/06/04 23:59:16, 1] smbd/files.c:file_init(219)
file_init: Information only: requested 10000 open files,
1014 are available.
log level = 3

52 © Mustafa Başer & Görkem Çetin - 2007


Kayıt Davranışlarını Belirtme

[1999/06/05 00:00:40, 1] smbd/server.c:main(614)


smbd version 2.0.3 started.
Copyright Andrew Tridgell 1992-1998
[1999/06/05 00:00:40, 2] param/loadparm.c:do_section(2199)
Processing section "[homes]"
doing parameter comment = Home Directories
doing parameter read only = No
doing parameter browseable = No
[1999/06/05 00:00:40, 2] param/loadparm.c:do_section(2199)
Processing section "[printers]"
doing parameter comment = All Printers
doing parameter path = /usr/spool/Samba
doing parameter print ok = Yes
doing parameter browseable = No
[1999/06/05 00:00:40, 2] param/loadparm.c:do_section(2199)
Processing section "[temp]"
doing parameter comment = fghhhdfgh
doing parameter path = /tmp
doing parameter read only = No
[1999/06/05 00:00:40, 3] param/loadparm.c:lp_load(2521)
pm_process() returned Yes
[1999/06/05 00:00:40, 3] param/loadparm.c:lp_add_ipc(1495)
adding IPC service
[1999/06/05 00:00:40, 2]
lib/interface.c:interpret_interfaces(213)
Added interface ip=192.177.166.1 bcast=192.177.166.255
nmask=255.255.255.0
[1999/06/05 00:00:40, 1] smbd/files.c:file_init(219)
file_init: Information only: requested 10000 open files,
1014 are available.
[1999/06/05 00:00:40, 3] smbd/server.c:main(666)
loaded services
[1999/06/05 00:00:40, 3] smbd/server.c:main(674)
Becoming a daemon.
[1999/06/05 00:00:40, 3]
lib/util_sock.c:open_socket_in(683)
bind succeeded on port 139
[1999/06/05 00:00:40, 2] smbd/server.c:open_sockets(183)
waiting for a connection

Sistem Kayıtlarına (syslog) Giriş Mesajları


syslog
Öntanımlı:
syslog = 1
Örnek:
syslog = 3
"syslog" parametresi hangi mesajların ve önem sırasınının syslog
tarafından kayıtların tutulacağını belirtir. Samba, syslog özelliğini
aşağıdaki tabloya göre belirler:

© Mustafa Başer & Görkem Çetin - 2007 53


5. Samba Genel Yapılandırma Seçenekleri

kayıt düzeyi syslog önceliği syslog.h'dan kayıt düzeyi


0 hata LOG_ERROR
1 uyarı LOG_WARNING
2 dikkat çekme LOG_NOTICE
3 bilgilendirme LOG_INFO

"syslog" paramteresi hangi mesajların yeterince önemli olduğunu


belirtmek için kullanılır.
syslog only
Öntanımlı:
syslog only = no
Örnek:
syslog only =yes
Bu parametrenin değerini "yes" yaptığınızda, Samba mesajların
kayıtlarını kendisi tutmaz ve tamamını syslog programına iletir.

Değişik ıstemci Karakterleri ile Çalışmak


client code page
Öntanımlı:
client code page = 850
Örnek:
client code page =437
Bu parametre, istemcilerin Samba'ya erişirken kullandığı DOS kod
sayfasını belirtir. Bu sayfalar, istemcinin kullandığı karakter
öbeğinden küçük harflerin büyük harflere nasıl dönüştürüleceğine
ait bilgiler içerir. Hangi kod sayfasını kullandığınızı öğrenmek için
DOS komut satırından "chcp" komutunu çalıştırın. Eğer Türkçe bir
sürüm kullanıyorsanız, bu sayfanın 857 olması gerekir. Ne yazık ki
bu kod sayfası Samba ile birlikte gelmemektedir.
character set
Öntanımlı:
Yok
Örnek:
character set = iso8859-2
Bu yapılandırma smbd sunucusunun, dosya isimlerinde bulunan
karakterlerin hangi karakter öbeğine eşleneceğini belirtir. Normal

54 © Mustafa Başer & Görkem Çetin - 2007


Değişik ıstemci Karakterleri ile Çalışmak

olarak hiçbir eşleme yapılmaz. Ne yazık ki şimdilik Türkçe harflerin


bulunduğu iso8859-9 öbeği Samba kodlarında yoktur.
valid chars
Öntanımlı:
Yok
Örnek:
valid chars = a:A g:G
Bu parametre aslında Samba'nın yeni sürümlerinde iptal edilmiş
durumda, ancak eski yapılandırma dosyaları ile uyumluluğu
sağlamak için hala Samba tarafından algılanmaktadır. Bu parametre
yerine "client code page" kullanılmalı. Ne olduğu ve nasıl kullanıldığı
yukarıdaki parağraflarda anlatılmıştır.

NIS Kullanarak Kullanıcıların Ev Dizinlerinin


Belirlenmesi
homedir map
Öntanımlı:
homedir map = auto.home
Örnek:
homedir map = nis.map
"homedir map" parametresi, NIS ile birlikte kullanılır. Yerel UNIX
makina yerine kullanıcıların uzaktaki bir makinadaki ev dizinleri,
Samba ev dizinleri olarak gösterilebilir. Bu parametreyi kullanmak
için "nis homedir" parameresinin değeri "yes" olmalı ve NIS hizmeti
Samba içine derlenmelidir. şimdilik sadece Sun auto.map dosyası
gösterimi Samba tarafından anlaşılıyor. Bu dosyanın yapısı şöyledir:
username server:/ev_dizini_patikası
nis homedir
Öntanımlı:
nis homedir = no
Örnek:
nis homedir = yes
Bu seçeneğin değeri "yes" olarak atanmazsa, kullanıcıların onayı NIS
ile yapılsa bile yerel makinadaki ev dizinler [homes] paylaşımı olarak
atanmaya çalışılır.

© Mustafa Başer & Görkem Çetin - 2007 55


5. Samba Genel Yapılandırma Seçenekleri

Diske Erişme Zamanının ıyileştirilmesi

getwd() Çağrılarının Kayıtlarının Tutulması


getwd cache
Öntanımlı:
getwd cache = no
Örnek:
getwd cache =yes
Bu seçeneğin değeri "yes" olarak atanacak olursa, Samba'nın getwd()
(çalışma dizinini edinme) çağrılarını daha kısa sürede
cevaplayabilmek için bir kayıt algoritması tutması sağlanır. "yes"
değerinin "getwd cache" parametresine atanması, özellikle "wide
links" (bakınız sayfa 75) seçeneğinin değerinin "no" olduğu
durumlarda performansta büyük bir artış meydana getirmektedir.

Ağ ve Disk Okuma Yazma Süreçlerinin Eşlenmesi


read size
Öntanımlı:
read size = 2048
Örnek:
read size = 4096
Bu seçeneğin düzgün ayarlanması Samba'nın performansında
büyük bir artış meydana getirmektedir. "read size" Samba'nın
diskten bir kerede ne kadar bir verinin okunacağını belirtir. Eğer bu
değer ağda SMB paketleri ile taşınan veri miktarına yakınsa
Samba'nız daha hızlı olacaktır. Bununla ilgili tartışmayı "Samba
Sunucusunun Hızını Artırmak" başlıklı konuyu sayfa 97'den
okumalısınız.

Bir Sonraki SMB ışlemi için Samba'nın hazırlanması


read prediction

56 © Mustafa Başer & Görkem Çetin - 2007


Diske Erişme Zamanının ıyileştirilmesi

Öntanımlı:
read prediction = no
Örnek:
read prediction = yes
Başlıktan da anlaşılacağı gibi, bu parametre sayesinde Samba'yı bir
sonraki işlem için hazırlanıp hazırlanmayacağını ayarlar. Bu ne
demek? ıstemci Samba'dan büyükçe bir dosya istesin: eğer, Samba
ilk paketi gönderdikten sonra, bir sonraki SMB istemi gelmeden önce
dosyanın geri kalanını diskten okur ve hazır beklerse, istem gelir
gelmez paketi gönderir. Böylelikle hızı artırmış olursunuz. Ayrıntılı
bilgi için "Samba Sunucusunun Hızını Artırmak" başlıklı konuya
(sayfa 97) bakınız.

Diğer Seçenekler

Diskin En Büyük Boyutunu Belirtilmesi


max disk size
Öntanımlı:
max disk size = 0
Örnek:
max disk size = 1000
Bu parametre, diskin istemci tarafından görünen en büyük
boyutunun megabayt cinsinden ayarlamanıza yarar. Paylaşımlar bu
parametreye atanan değerden daha büyük görünemezler. Bu
parametre istemcilerin, disk üzerinde saklayacağı veri miktarını
ayarlamaz, sadece istemci Samba'ya "diskte ne kadar boş yer var"
sorusunu sorduğunda buna göre bir hesaplama yapılır.

ıstemciye Kullanıcının Gerçek ısminin Sağlanması


unix realname

© Mustafa Başer & Görkem Çetin - 2007 57


5. Samba Genel Yapılandırma Seçenekleri

Öntanımlı:
unix realname =no
Örnek:
unix realname = yes
"unix realname" parametresinin değerini "yes" yapacak olursanız,
Samba kullanıcının UNIX /etc/passwd dosyasındaki gerçek ismini
SMB istemcisine bildirir.

Kilit Dosyası ıçin Başka bir Dizinin Belirtilmesi


lock directory
Öntanımlı:
lock directory = /usr/local/Samba/var/locks
(derleme sırasında değiştirilebilir, örneğin Red Hat Linux
sürümlerinde öntanımlı değer /var/lock/samba dır.)
Örnek:
lock directory = /usr/local/Samba/locks
Bu parametre ile kilit dosyalarının yazıldığı dizinin yerini
değiştirebiliyorsunuz. Eğer kilitlerin yazıldığı dizini, derleme
sırasındaki verilen dizinden başka bir yerde tutmak istiyorsanız bu
parametre yardımınıza koşar.Kilit dosyaları, "max connections" ile
belirttiğiniz paylaşıma bağlanabilecek en çok kullanıcı sayısının
belirlenmesinde kullanılır. Paylaştırılmış bellek kiliti (shared memory
lock) kullanıyorsanız bu seçenek gereksizdir.
"lock directory" ile belirtilen dizin NFS diski olmamalıdır. Bazı
durumlarda bu tür disklere kilit dosyalarının yazılması sorunlara yol
açabilmektedir.

Genel Yazıcı Hizmetleri Seçenekleri

Yazıcı Hizmetlerinin Otomatik Olarak


Yapılandırılması
load printers

58 © Mustafa Başer & Görkem Çetin - 2007


Genel Yazıcı Hizmetleri Seçenekleri

Öntanımlı:
load printers = no
Örnek:
load printers =yes
Bu parametrenin değerini doğrulayacak olursanız ("yes" yaparsanız),
printcap dosyasında tanımladığınız tüm yazıcıların Samba tarafından
paylaştırılmasını sağlarsınız.

printcap Dosyasının Yerinin Belirtilmesi


printcap name
Öntanımlı:
printcap name = /etc/printcap
Örnek:
printcap name = /usr/local/Samba/lib/printcap
Birçok UNIX işletim sisteminde yazıcıların tanımlı bulunduğu
printcap dosyası /etc dizinin altındadır. Bazı durumlarda başka bir
yerde tanımlanmış olabilir. Eğer böyle bir yapılandırmanız var ise,
sorununuzu çözmek için iki yolunuz vardır. Biri başka bir yerde
bulunan bu dosyaya /etc dizinin altına bir sembolik bağlantı (link)
atmak, diğeri ise "printcap name" paramtresini kullanarak bu
dosyanın tam patikasını belirtmektir.

Yazıcı Kuyruğu Kayıt Süresinin Belirtilmesi


lpq cache time
Öntanımlı:
lpq cache time = 10
Örnek:
lpq cache time = 45
Samba lpq komutuna çıktı gönderme süresininin kaydını öntanımlı
olarak 10 saniye tutar. Bu kayıt, lpq'nun çok kısa süreli
çağırılmasını önler. Bazı kullanıcıların farklı kuyruklara
yazdırmasını sağlayabilirsiniz. Bu durumda her kuyruğa ait "lpq
cache time" değeri ayrı ayrı ayarlanabilir.
Windows yazdırma yöneticisinin (print manager) açık olduğu
durumda kuyruklara her 15 saniyede bir istek gönderir, yukarıdaki
parametrenin kullanım amacı bu zamanı ayarlamaktır. Onlarca PC
bulunan bir laboratuvarda herkesin yazdırma yöneticisini açık

© Mustafa Başer & Görkem Çetin - 2007 59


5. Samba Genel Yapılandırma Seçenekleri

tutuğunu düşünün, yazıcı kuyruğunun durumunu öğrenmek üzere,


saniye başına bir istemde bulunulursa, vay haline o kuyruğun.
Sıfır "0" değeri süre tutulmasını iptal eder. Eğer lpq komutunuz
yavaş çalışıyorsa, bu parametreye atayacağınız değerin yüksek
olması verimi artıracaktır.

Windows 95 Yazıcı Sürücüsünün Yerinin Belirtilmesi


printer driver file
Öntanımlı:
printer driver file = /usr/local/lib/printers.def
Örnek:
printer driver file = /etc/printers.def
Bu parametre sayesinde, Samba ile paylaştırılan yazıcılara ait
sürücülerin, Windows 9x yine Samba tarafından sağlanmasını
yapılandırırsınız. Bu konuyla ilgili geniş açıklama için bakınız sayfa
103.

Diğer Bazı Seçenekler

Bağlantı Durumu Dosyasını ıptal Etme


status
Öntanımlı:
status =yes
Örnek:
status = no
Samba, normal olarak kendisine yapılan bağlantıların kaydını bir
dosyada tutar. smbstatus aracı sayesinde, bu dosya okunularak o
an yapılan bağlantıların durumu gözetlenebilir. Hiçbir zaman
bağlantıları denetlemeyecekseniz, bu parametrenin değeri "no"
yapılabilir, böylelikle hızda (nispeten küçük) bir artış elde
edebilirsiniz.

Ana Dizinin Değiştirilmesi


root directory

60 © Mustafa Başer & Görkem Çetin - 2007


Diğer Bazı Seçenekler

Öntanımlı:
root directory = /
Örnek:
root directory = /home/samba
Eşleniği
root dir
"root directory", "root" veya "root dir" parametreleri aynı anlamda
olup Samba'ya ana dizin olarak nereyi kabul edeceğini söylerler. Bu
parametre ayrdımıyla ana dizin olarak "/" den başka bir yer
belirtilmiş ise Samba bu dizinin üstünde yer alan dosya ve dizinlere
erişmeyecektir. Bu sayede güvenlik daha da artmış olacaktır. Eğer
bu parametreyi tanımlamış iseniz, yapılandırma dosyasındaki tüm
parametrelere atayacağınız dizinler bu parametreye göreceli olarak
tanımlanmalıdır. Örneğin yukarıdaki parametreye atadığınız değer
"/home/samba" ise /home/samba/windows dizininin paylaştırmak
istedğinizde "path = /windows" olmalıdır.

WinPopup Mesajları
message command
Öntanımlı:
Yok
Örnek:
message command = csh - c 'xedit %s; rm %s' &
Bu parametre, gelen WinPopup mesajlarını ne şekilde işlyeceğinize
ait bir komut satırı çalıştırmanızı sağlar. Gelen WinPopup
mesajlarını kullanıcılarınıza nasıl görünteleyeceğiniz sizin
yaratıcılığınıza kalmıştır.
Bu parametre sayfa 22'de açıklanan tüm makroları kabul ettiği gibi,
bunlara ek olarak şu üç makroyu da kullanabilirsiniz:
%s WinPopup mesajını içeren dosyanın patikası
%t Mesajın geldiği yer (çoğunlukla, mesajın gönderildiği makinanın
NetBIOS ismi)
%f Mesajı gönderen kullanıcı
Samba dökümanlarında yukarıda verdiğimiz komut öneriliyor. Bu
çok basit bir çözüm, X-Windows çalışmadığı ya da guest hesabından
gelen mesajlar X-Windows tarafından kabul edilmediği zaman doğal
olarak işlemez. X Sunucusu, ön tanımlı olarak bu sunucuyu
çalıştıran kullanıcı dışından gelen istekleri kabul etmez.

© Mustafa Başer & Görkem Çetin - 2007 61


5. Samba Genel Yapılandırma Seçenekleri

smbrun Programının Yerinin Değiştirilmesi


smbrun
Öntanımlı:
smbrun =/usr/local/Samba/bin/smbrun
(Derleme sırasında değiştirilebilir, örneğin Red Hat ve Mandrake
Linux sürümlerinde aşağıdaki patika belirtilmiştir.)
Örnek:
smbrun = /usr/sbin/smbrun
smbrun programını derleme sırasında belirtilen dizin yerine başka
bir yere kurmuşsanız, "smbrun" parametresi yardımıyla bu patikayı
belirtebilirsiniz. smbrun programı, Samba tarafından kullanılacak
kabuk betikleri ve programlarını çalıştırır. Bu komut kabuk
programlarını "guest" kullanıcı hesabı adına çalıştıracaktır.

Samba'yı Zaman Sunucusu Olarak Kullanmak


time server
Öntanımlı:
time server = no
Örnek:
time server = yes
Eğer nmbd'yi zaman sunucusu olarak kullanmak istiyorsanız, bu
parametreye "yes" değerini atayın. Böylelikle, giriş betiklerine
yazacağınız bir satır ile, ağınızdaki tüm makinaların yerel saatleri ile
Samba'nın çalıştığı makinanın sati eşlenik yapılmış olur.

62 © Mustafa Başer & Görkem Çetin - 2007


6. Samba Hizmet Yapılandırma Seçenekleri

6. Samba Hizmet Yapılandırma


Seçenekleri

S amba ile ilgilenmemizin ana nedeni, kullanıcılara ağ


hizmetlerini vermektir. Her hizmetin özellği smb.conf
dosyasında bir bölüm halinde belirtilmektedir. Bu bölümde
anlatacağımız yapılandırma seçeneklerini alfabetik sırayla anlatmak
pek uygun değil, o yüzden parametreleri mümkün olduğu kadar
sizin ihtiyacınızı karşılayacak şekilde gruplandırarak anlatmaya
çalıştık.

Hizmet Yapılandırma Seçenekleri


Bu kısımda dosya sistemi ve yazıcı erişim hizmetlerine ait seçenekler
anlatılacaktır.

Paylaşılan Dizinin Belirlenmesi

path
Öntanımlı:
path = /tmp
Örnek:
path = /home/ftp/pub

"path" parametresi, paylaşılan dizinin patikasını verir. Samba


sunucunun görebildiği tüm dosyalar ve dizinler paylaştırılabilir. Eğer
"root directory" seçeneği ile seçilen bir dizin var ise bu dizinin
üstündeki dizinler paylaştırılamayacaktır.

© Mustafa Başer & Görkem Çetin - 2007 63


6. Samba Hizmet Yapılandırma Seçenekleri

Eğer "path" seçeneği bir yazıcı hizmeti için kullanılıyorsa, yerel


yazıcıda bastırılmak üzere istemcilerden gönderilen yazıcı
dosyalarının geçici olarak tutulduğu yeri gösterilecektir. En iyisi
/tmp gibi bir dizini belirtmektir. Burada dikkat edilmesi gereken bir
nokta, gösterilen dizinin mutlaka herkes tarafından yazılabilir
olmasıdır. Dizin hakları 1777 ile tanımlanmalıdır. 1777 hakları ile
herhangi bir kullanıcı bu dizine yazabilir, kendi dosyalarını silebilir,
ancak başka bir kullanıcının yerleştirdiği dosyayı silemez anlamına
gelir

Ağ Tarayıcısındaki Görüntünün Denetlenmesi


browseable
Öntanımlı:
browseable = yes
Örnek:
browseable = no
Bu seçenek, ağ tarayıcısının tarama listesinde sunucu adının
görülüp görülmeyeceğini belirler. "browseable = no" seçilse bile ağ
tarayıcısı, kendisi için tanımlanan hizmetleri hala kullanabilir
durumda olacak, ancak ekrandaki pencerede isimlerini
göremeyecektir. Browseable yerine browsable da kullanılabilir.
comment
Öntanımlı:
Yok
Örnek:
comment = Paylasilan dosyalar
"comment" komutu, NET VIEW komutunu girdiğiniz zaman hizmet
adının hemen yanında yeralan sözdizimidir. Buraya hizmeti
açıklayan herhangi bir cümleyi iliştirebilirsiniz.

Erişim Denetimi
ıstemci IP adresine göre erişim denetimi yapmanızı sağlar.
allow hosts
Öntanımlı:
Yok

64 © Mustafa Başer & Görkem Çetin - 2007


Hizmet Yapılandırma Seçenekleri

Eşleniği
hosts allow
Örnek:
allow hosts = 192.178.1.8, 192.178.2., .gorkem.com.tr
deny hosts
Öntanımlı:
Yok
Örnek:
deny hosts = 192.178.1.3, 192.178.12.,
penguen.mbaser.com.tr
Yukarıdaki iki seçenek, bir hizmete verilen yetkileri IP bazında
kısıtlamak için kullanılabilir.
Eğer verilen hizmetin içinde "allow hosts" seçeneği var ise, sadece bu
seçeneğe karşılık gelen makina adları ya da IP numaraları
sözkonusu hizmetten yararlanabilir.
Eğer verilen hizmetin içinde "deny hosts" seçeneği var ise, sadece
"deny hosts" dışında kalan makina adları ya da IP numaraları bu
hizmetten yararlanabilir.
Her iki seçenek de aynı anda kullanılabilir. Yanlışlıkla her iki
seçenekte de yeralan bir makina adı ya da IP adresi varsa, bu istemci
verilen hizmeti alabilir.
"hosts allow" ya da "deny allow" karşısında yazılan istemcileri
belirtmenin 4 ayrı yolu vardır. Linux altında tcpwrapper ile
ilgilenmiş olanlar kolayca adres tanımı yapabilirler.
1. Bir nokta ile başlayan makina ismi varsa, noktadan sonra gelen
alan adına ait tüm makinalar tanımlanır. ".gorkem.com.tr", hem
penguen1.gorkem.com.tr, hem de baser.gorkem.com.tr ile
eşleşebilir.
2. Bir nokta ile biten IP adresi varsa, noktadan önce gelen alan
adına ait tüm IP adresleri tanımlanır. "192.178.2.", hem
192.178.2.4, hem de 192.178.2.50 IP numaralarını eşleştirebilir.
3. "@" karakteri ile başlayan bir bir dizi, NIS ağ grubunu belirtir. Bu
ağ grubunun ne olduğunu sistem yönetinizden alabilirsiniz. Bir
makina, eğer bu ağ grubuna aitse eşleşecektir.
4. a.a.a.a/b.b.b.b şeklinde yazılan bir makina adının, bölü
karakterinden önce gelen kısmı ağ adresi, ardından gelen kısmı
ise ağ maskesi olarak tanımlanır. Örnek olarak
192.168.174.9/255.255.255.128 dizisi, 192.168.174.0'dan
192.168.174.63'e kadar olan IP adresleriyle eşleşecektir.

© Mustafa Başer & Görkem Çetin - 2007 65


6. Samba Hizmet Yapılandırma Seçenekleri

Geniş bir blok içinden tek tek ya da grup halinde IP ya da makina


adını çıkartmak için "EXCEPT" kullanabilirsiniz.
hosts deny = 195.174.2. EXCEPT 195.172.2.3
Yukarıdaki örnek, 195.174.2. IP bloğundan gelen makinaların
tamamından gelen hizmet bağlantı isteklerini reddederken sadece
195.172.2.3 IP numarasını kabul edecektir.
IP numaralarını, makina isimlerini, NIS ağ grubunu ya da "ağ
adresi/ağ maskesi" şeklinde yazılan adresleri, arasına virgül koyarak
ayırabilirsiniz.
hosts allow = 194.122.12.4 , 194.122.12.1 , 194.122.12.33
Erişim haklarını testparm ile ölçebilirsiniz. Üzerinde çalıştığımız
makina da testparm komutunu çalıştırdığımızda aşağıdaki gibi bir
çıktı aldık. Gödüğünüz gibi herhangi bir hata mesajı yok. Ancak
teknik olarak hatasız bir yapılandırma sunucusunda servisi
veremeyebileceğinizi de gözönünde bulundurmanız gereklidir.

66 © Mustafa Başer & Görkem Çetin - 2007


Hizmet Yapılandırma Seçenekleri

Load smb config files from /usr/local/samba/lib/smb.conf


Processing section "[homes]"
doing parameter comment = Home Directories
doing parameter browseable = no
doing parameter writable = yes
Processing section "[printers]"
doing parameter comment = All Printers
doing parameter path = /var/spool/samba
doing parameter browseable = no
doing parameter guest ok = no
doing parameter writable = no
doing parameter printable = yes
pm_process() returned Yes
Loaded services file OK.
Press enter to see a dump of your service definitions
# Global parameters
workgroup = OBL
netbios name =
netbios aliases =
server string = Samba Server
interfaces = 192.177.166/24 139.179.33.1/24
bind interfaces only = No
security = USER
encrypt passwords = Yes
update encrypted = No
use rhosts = No
min passwd length = 5
map to guest = Never
null passwords = No
password server =
smb passwd file = /etc/smbpasswd
hosts equiv =
root directory = /
passwd program = /bin/passwd
passwd chat = *old*password* %o\n *new*password* %n\n
*new*password* %n\n *changed*
passwd chat debug = No
username map =
password level = 0
username level = 0
unix password sync = No
log level = 3
syslog = 1
syslog only = No
log file = /var/log/samba/log.%m
max log size = 50
timestamp logs = Yes
protocol = NT1
read bmpx = Yes
read raw = Yes
write raw = Yes
nt smb support = Yes
nt pipe support = Yes
nt acl support = No
announce version = 4.2
announce as = NT
max mux = 50
max xmit = 65535
name resolve order = lmhosts host wins bcast
max packet = 65535
max ttl = 259200
max wins ttl = 518400
min wins ttl = 21600
time server = No
change notify timeout = 60
deadtime = 0
getwd cache = Yes
keepalive = 300

© Mustafa Başer & Görkem Çetin - 2007 67


6. Samba Hizmet Yapılandırma Seçenekleri

lpq cache time = 10


max disk size = 0
max open files = 10000
read prediction = No
read size = 16384
shared mem size = 1048576
socket options = TCP_NODELAY
stat cache size = 50
load printers = Yes
printcap name = /etc/printcap
printer driver file = /usr/local/samba/lib/printers.def
strip dot = No
character set =
mangled stack = 50
coding system =
client code page = 850
stat cache = Yes
domain groups =
domain admin group =
domain guest group =
domain admin users =
domain guest users =
machine password timeout = 604800
add user script =
delete user script =
logon script =
logon path = \\%N\%U\profile
logon drive =
logon home = \\%N\%U
domain logons = No
os level = 33
lm announce = Auto
lm interval = 60
preferred master = Yes
local master = Yes
domain master = Yes
browse list = Yes
dns proxy = No
wins proxy = No
wins server =
wins support = No
kernel oplocks = Yes
ole locking compatibility = Yes
smbrun = /usr/local/samba/bin/smbrun
config file =
preload =
lock dir = /usr/local/samba/var/locks
default service =
message command =
dfree command =
valid chars =
remote announce =
remote browse sync =
socket address = 0.0.0.0
homedir map =
time offset = 0
unix realname = No
NIS homedir = No
panic action =
comment =
path =
alternate permissions = No
revalidate = No
username =
guest account = nobody
invalid users =
valid users =
admin users =
read list =

68 © Mustafa Başer & Görkem Çetin - 2007


Hizmet Yapılandırma Seçenekleri

write list =
force user =
force group =
read only = Yes
create mask = 0744
force create mode = 00
directory mask = 0755
force directory mode = 00
guest only = No
guest ok = No
only user = No
hosts allow = 192.177.166.
hosts deny = .metu.edu.tr except mbaser.fedu.metu.edu.tr
status = Yes
max connections = 0
min print space = 0
strict sync = No
sync always = No
print ok = No
postscript = No
printing = bsd
print command = lpr -r -P%p %s
lpq command = lpq -P%p
lprm command = lprm -P%p %j
lppause command =
lpresume command =
queuepause command =
queueresume command =
printer name =
printer driver = NULL
printer driver location =
default case = lower
case sensitive = No
preserve case = Yes
short preserve case = Yes
mangle case = No
mangling char = ~
hide dot files = Yes
delete veto files = No
veto files =
hide files =
veto oplock files =
map system = No
map hidden = No
map archive = Yes
mangled names = Yes
mangled map =
browseable = Yes
blocking locks = Yes
fake oplocks = No
locking = Yes
oplocks = Yes
strict locking = No
share modes = Yes
copy =
include =
exec =
postexec =
root preexec =
root postexec =
available = Yes
volume =
fstype = NTFS
set directory = No
wide links = Yes
follow symlinks = Yes
dont descend =
magic script =

© Mustafa Başer & Görkem Çetin - 2007 69


6. Samba Hizmet Yapılandırma Seçenekleri

magic output =
delete readonly = No
dos filetimes = No
dos filetime resolution = No
fake directory create times = No
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
print ok = Yes
browseable = No

Kullanıcılara Erişim Hakkı Tanınması


Aşağıda gösterilen seçenekler, bir hizmete erişimi kullanıcı ya da
oluşturulan bir grup bazında kısıtlar.
valid users
Öntanımlı:
Yok
Örnek:
valid users = gorkem, mbaser, @destek
invalid users
Öntanımlı:
Yok
Örnek:
invalid users = patron, muhasebe
Öntanımlı olarak hiç bir kullanıcı "valid users" ya da "invalid users"
listesinde bulunmaz. Kolayca anlayabileceğiniz gibi bu durum,
"hizmetler öntanımlı olarak herkese açıktır" anlamına gelir. Her iki
seçenek de, karşısına birbirinden virgüllerle ayrılmış kullanıcıların
listesini alır. Sadece "valid users" karşısında yeralan kullanıcılar
sözkonusu hizmetten yararlanabilirler.
"invalid users" seçeneğinin önceliğinin "valid users" tan daha fazla
olduğunu da hatırlatalım. Bir başka deyişle, her iki listede yeralan
bir kullanıcı hizmetten yararlanamayacaktır.
@ işareti bir grubu belirtir. Bu grup UNIX sisteminde /etc/groups
dosyasında yeralır. Bu yolla UNIX'te /etc/group dosyasını
düzenleyerek belirli bir kullanıcı öbeğine erişim hakkı verebilir ya da
kısıtlayabilirsiniz.

70 © Mustafa Başer & Görkem Çetin - 2007


Hizmet Yapılandırma Seçenekleri

Misafir Erişiminin Denetlenmesi


Misafir hesabı (guest) erişimi, iki şekilde denetlenebilir: public ve
guest only
public
Öntanımlı:
public = no
Örnek:
public = yes
guest only
Öntanımlı:
guest only = no
Örnek:
guest only = yes
"public" ile "guest ok" seçenekleri birbirinin eşidir. Benzer şekilde
"guest only" ve "only guest" seçenekleri aynı etkiyi verir.
"public=yes", her kullanıcının hizmetten yararlanabileceğini
gösterirken, "guest only=yes" ise sadece misafir girişlerini kabul eder:

Bir Hizmetin Etkisiz Kılınması


available
Öntanımlı:
available = yes
Örnek:
available = no
Eğer "available = no" parametresi smb.conf dosyasına eklenirse,
istenen bir hizmete erişim tamamen kısıtlanacaktır. Hizmeti belirten
satırların önüne teker teker # karakteri koymaktansa "available =
no" parametresinin eklenmesi zamandan tasarruf sağlar.

Bir Hizmete Bağlanacak ıstemci Sayısını Sınırlama


Bazı durumlarda, açtığınız paylaşımlara bir anda belirli bir istemci
sayısından fazla bağlantı kurulmasını istemeyebilirsiniz. Bunu
önlemek için "max connections" seçeneğini kullanmalısınız.
max connections

© Mustafa Başer & Görkem Çetin - 2007 71


6. Samba Hizmet Yapılandırma Seçenekleri

Öntanımlı:
max connections = 0
Örnek:
max connections = 0
Öntanımlı değerde sıfırı (0) görüp paniklemeyin. Çünkü bir hizmette
"max connections" parametresine sıfır değeri atanmışsa bu hizmete
erişecek istemci sayısı sınırsızdır.

Hizmetlere Erişildiğinde ve erişimin koparıldığında


betiklerin çalıştırılması
preexec
Öntanımlı:
Yok
Örnek:
preexec = mount /dev/cdrom
Eşleniği
exec
postexec
postexec = umount /dev/cdrom
Öntanımlı:
Yok
Örnek:
postexec = umount /dev/cdrom
"preexec" ve "postexec" parametreleri, bir hizmete herhangi bir
kullanıcının erişim yaptığında ve erişimi kopardığında yerel UNIX'te
çalıştırılan bir programı veya betiği belirtir. Özellikle taşınabilir
disklerin kullanıcıların erişiminden hemen önce bindirme işleminin
yapılması ve kullanıcının bu hizmeti kullanmayı bıraktığında tekrar
indirme işlemi için oldukça elverişlidir. Yukarıdaki örneği cdrom
paylaşımında kullanırsanız, bu diskin kullanıcılar tarafından
indirme/bindirme işlemlerini yapabilmeleri amacı ile /etc/fstab
dosyasında değişiklik yapmak zorundasınız. Bu dosyadaki cdrom
satırı şuna benzer olmalıdır:
/dev/hdd /mnt/cdrom iso9660 noauto,user 0 0
Elbetteki sisteminize göre değişiklik arzedebilir. Önemli olan "user"
parametresinin var oluşudur. Bu sayede Linux makinanızdaki bir
CD-ROM tüm kullanıcılara sorunsuz olarak paylaştırılmış olur. root
kullanıcısının bir hizmete erişim yaptığında veya erişimi

72 © Mustafa Başer & Görkem Çetin - 2007


Hizmet Yapılandırma Seçenekleri

kopardığında ayrı bir betik çalıştırmak istiyorsanız "root preexec" ve


"root postexec" parametrelerini kullanmalısınız.

Dosya Alanı Hizmetleri

UNIX Dosya Sisteminin Paylaştırılması


Bir dosya alanı hizmeti, UNIX dosya sisteminin paylaştırılmasından
başka birşey değildir. Burada anlatacağımız seçenekler sayesinde,
hangi dizinlerin paylaştırılacağını ve bu alandaki hangi dosya ve
dizinlerin görüneceğini ayarlayabileceksiniz.

Oylum (volume) ısminin Belirtilmesi


volume
Öntanımlı:
Paylaşımın ismi.
Örnek:
volume = win95
SMB de oylum isimlerini veren bir alan bulunur. Samba normalde,
oylum ismi olarak paylaşımın ismini verir. Bu parametre sayesinde
bir paylaşıma istediğiniz oylum ismini verebilirsiniz. Bazı
programların kurulumunda oylum isimleri önemli olabilmektedir. Bu
tür programları istemciler üzerine kurarken bu seçeneği kullanmanız
gerekiyor.

Paylaşımın ıstemcilerden Gizlenmesi


dont descend
Öntanımlı:
Yok. Paylaşımdaki her dizin kullanıcılar tarafından görünür.
Örnek:
dont descend = /proc, /dev
Samba paylaştırdığınız bir alandaki bazı dizinleri kullanıcılara boş
gösterebilir. Bunu paylaşımın gizlenmesi olarak düşünebilirsiniz.
Özellikle, UNIX dosya sisteminizin tamamını paylaştırmışsanız, bazı
dizinlerin kullanıcılar için anlamsız olduğunu düşünebilirsiniz.
Örneğin, /proc ve /dev dizinleri normal dizinler değildirler ve
istemcilerin bu dizinleri görmesi onlara bir fayda sağlamayacaktır.

© Mustafa Başer & Görkem Çetin - 2007 73


6. Samba Hizmet Yapılandırma Seçenekleri

Bunları "dont descend" seçeneğinde kullanırsanız, istemciler bu


dizinleri görebildikleri halde içleri boş olarak yansıtılacaktır.
veto files
Öntanımlı:
Yok.
Örnek:
veto files = /Desktop/.Xdefaults/.bashrc/.kde
Paylaşımlarda, bazen kullanıcıların hiçbir işine yaramayan dizinler
olabilir. Bir UNIX kullanıcısı yaratıldığında, bunun ev dizininde bazı
dosya ve dizinler oluşturlur. Windows makinadan Samba'ya bağlantı
yapacak kullanıcıların bunları görmesinin bir anlamı yoktur. Samba
aracılığı ile Linux'a bağlantı yapan kullanıcıların işine yaramayan
dosya ve dizinleri gizlemek için "veto files" parametresine aralarında
"/" işareti olacak şekilde yazmalısınız. "dont descend" parametresine
atanan dizinler kullanıcılara boş gösterilirken, "veto files"
parametresine atanan dosya ve dizinler kullanıcılara hiç gösterilmez.
delete veto files
Öntanımlı:
delete veto files = no
Örnek:
delete veto files = yes
Bu parametre kullanıcılardan gizlediğiniz dosyaların silinip
silinmeyeceğini belirtir. "veto files" seçeneğindeki dosyalar,
kullanıcıların hiçbir şekilde işlerine yaramayacaksa, bu dosyaları
hepten silebilir ve yerden kazanabilirsiniz. Sisteminize sadece Samba
ile bağlantı yapılacaksa, ev dizinlerindeki gereksiz dosyaları silmek
akıllıca olabilir.

Kısayol Bağlantılarının Denetimi


follow symlinks
Öntanımlı:
follow symlinks = yes
Örnek:
follow symlinks = no
"follow symlinks" seçeneği, Samba'nın UNIX kısayollarının (sembolik
bağlantılar) izleyip izlemeyeceğini belirtir. Ön tanımlı olarak tüm
kısayollar izlenir. Bu parametrenin değeri "no" yapılacak olursa,
kısayol bağlantısı yapılmış bir dizine (yada dosyaya) ulaşmak isteyen
kullanıcılar hata ile karşılaşırlar.

74 © Mustafa Başer & Görkem Çetin - 2007


Dosya Alanı Hizmetleri

wide links
Öntanımlı:
wide links = yes
Örnek:
wide links = no
Bu parametrenin değeri "no" yapılacak olursa, Samba paylaştırılan
dizinden daha yukarıdaki bir yere yapılan kısayolu izlemeyecektir.
Böyle bir yere yapılmış bağlantıya erişmek isteyen kullanıcı hata ile
karşılaşacaktır.

Okuma ve Yazma Haklarının Denetimi


Samba her kullanıcı için okuma ve yazma hakkını değiştirebilir ve
düzenleyebilir.
read only
Öntanımlı:
read only = yes
Örnek:
read only = no
"read only = yes" parametresi kullanıldığı zaman istemciler
kendilerine ayrılan bölümü sadece okuma hakkına sahip olacaktır.
writeable
Öntanımlı:
writeable = no
Örnek:
writeable = yes
Eğer "writeable = yes" (writable değil) parametresi kullanılırsa
istemciler, bir paylaşım dizinine hem okuma hem yazma hakkıyla
girebilir.
Eğer hem "writeable = yes" , hem de "read only = yes"
parametrelerinin ikisi de kullanılırsa Samba çalışma sırasında
herhangi bir hata vermeyecektir. smb.conf dosyası satır satır
okunduğu için son sırada yazılan parametre geçerli olur.
write list
Öntanımlı:
Yok

© Mustafa Başer & Görkem Çetin - 2007 75


6. Samba Hizmet Yapılandırma Seçenekleri

Örnek:
write list = @muhasebe, gorkem, bmustafa
read list
Öntanımlı:
Yok
Örnek:
read list = baser, @ogrenciler
read list ve write list, belirli bir kişi ya da gruba ayrı ayrı okuma ve
yazma hakkı verir. Biraz yukarıda belirttiğimiz "read only" ve "write
only" parametreleriyle birlikte kullanılırsa sistem yöneticisine
kolaylık sağlar.
"write list", yazma hakkını verirken "read list" ise okuma hakkının
verileceği kişileri belirler.
"writeable = true" olsa bile "read only" parametresi içinde bulunan
kullanıcılara sadece okuma hakkı verilecektir. "@" karakteri ile
başlayan bir kullanıcı grubu UNIX/Linux altında tanımlı olmak
zorundadır.

Yönetici Erişim Hakları


admin users
Öntanımlı:
Yok
Örnek:
admin users = mustafa
"admin users" ile belirtilen tüm kullanıcılar, sistemdeki tüm dosya
işlemlerini (silme, yaratma vs) root kullanıcısı hakkıyla yaparlar.
Doğal olarak yaratılan dosyalar da root kullanıcısı ve root grubu
altında görünecektir. Bu da, parametreyi kullanacak olan yöneticinin
sistem üzerinde nispeten kontrol hakkı olması demektir. Yukarıdaki
örnekte mustafa kullanıcısı, herhangi bir paylaşım dizinine girebilir,
dosyaları değiştirebilir, silebilir ya da yeni dosya yaratabilir.

EUID (Effective UserID) Ayarlarının Yapılması


Kullanıcı bir paylaşım dizinine girdikten sonra kendisinin belli bir
kullanıcı ya da grup adı altında çalışması sağlanabilir.
force user
Öntanımlı:
Yok

76 © Mustafa Başer & Görkem Çetin - 2007


Dosya Alanı Hizmetleri

Örnek:
force user = gorkem
force group
Öntanımlı:
Yok
Örnek:
force group = baser
Öntanımlı olarak "force user" ve "force group" parametreleri tanımsız
gelir, bunun anlamı kullanıcı Samba'ya giriş yaptıktan sonra tüm
işlemleri kendi hakları üzerinden gerçekleştirir.
"force user = gorkem" satırı, istemcinin Samba'ya girişinden sonra
gorkem kullanıcısı altında çalışma yapacağını gösterir. Benzer
şekilde "force group = baser" ise kullanıcıya baser grubunun
yetkilerini verecektir.

Dosya ızinlerinin Denetlenmesi


Bu seçenek, Samba kullanıcısının bir dosya ya da dizin yarattığı
zaman yaratılan dosya ya da dizinin izinlerini belirler. Hem dosya,
hem de dizin için ayrı ayrı iki seçenek kullanılır. "create mask" dosya
erişim haklarını, "directory mask" ise dizin erişim haklarını belirler.
create mask
Öntanımlı:
create mask = 744
Örnek:
create mask = 755
Eşdeğer:
create mode
directory mask

© Mustafa Başer & Görkem Çetin - 2007 77


6. Samba Hizmet Yapılandırma Seçenekleri

Öntanımlı:
directory mask = 0744
Örnek:
directory mask = 0755
Eşdeğer:
directory mode

DOS ve Linux Dosya ısimleri


Her iki işletim sistemi de dosya isimlerini farklı yapıda gösterirler.
DOS altında dosyalar 8+3 (8 karakter dosya adı, 3 karakter dosya
uzantısı) şeklinde belirtilebilirken Linux'un ext2 dosya sistemi dosya
isimlerinin 255 karakter uzunlukta olabileceğini söylüyor. Bunun
yanında hem DOS, hem de ext2 hiyerarşik bir dosya yapısına sahip.
Asıl sorun, Samba'nın Linux'taki dosya isimlerini "hakkını verecek"
şekilde DOS'a çevirebilmesi. Bu çevrim yapılırken aşağıdaki kurallar
gözönüne alınır.
Eğer dosya ismi bir nokta ile başlamıyorsa,
1. Linux üzerindeki dosyanın en sağındaki noktadan önce gelen en
çok 5 alfanümerik karakter alınır.
2. ~ karakteri (biz buna tilda karakteri diyelim) alınan bu 5
karakterin sonuna (sağına) yapıştırılır.
3. Dosya uzantısı ise dosyanın en sağında yeralan noktanın
sağındaki üç alfanümerik karakter alınır.
Eğer dosya ismi bir nokta ile başlıyorsa,
1. Linux altında bir gizli dosya sıfatı aldığından, aynısı DOS için de
geçerli olacaktır. Dosya, "hidden" (gizli) halde aktarılır.
2. Linux üzerindeki dosyanın en sağındaki noktadan önce gelen en
çok 5 alfanümerik karakter alınıyor ve ~ karakteri, alınan bu 5
karakterin sonuna (sağına) yapıştırılır.
3. Dosyanın uzantısı ne olursa olsun "___" haline getirilir.
mangled names
Öntanımlı:
mangled names = yes
Örnek:
mangled names = no
Eğer "mangled names = yes" seçeneği girilirse uzun dosya isimleri
gösteremeyen istemciler için Samba, bu dosya isimlerini 8+3 şekline

78 © Mustafa Başer & Görkem Çetin - 2007


Dosya Alanı Hizmetleri

getirecektir. Diğer durumda (mangled names = no) ise uzun dosya


isimleri bu tür istemcilerde görünmeyecektir.

Harf Büyüklüğünün Uyarlanması


DOS, tüm dosya isimlerini büyük harflerle kaydeder ya da gösterir.
DOS'tan sonra gelen VFAT, FAT32 gibi daha modern dosya sistemleri
ise dosyaların büyük ve küçük harflerle gösterilmesine izin verir,
ancak kullanıcı bir dosyaya ulaşmak istediği zaman küçük ve büyük
harf uyumsuzluğu gözardı edilir. "case sensitive" seçeneği, dosya
isimlerine erişim yapılırken hangi yöntemin kullanılacağını belirler.
case sensitive
Öntanımlı:
case sensitive = no
Örnek:
case sensitive = yes
Eşdeğer
case sig names
default case
Öntanımlı:
default case = lower
Örnek:
default case = upper
"case sensitive" seçeneği, dosya isimlerinin büyük-küçük harfe
duyarlı olup olmadığını söyler. Eğer "case sensitive = yes" verilirse,
Samba dosyaları ararken büyük ve küçük harf uyumluluğuna da
bakacaktır.
"default case" seçeneği ise dosyaların öntanımlı olarak hangi
harflerle yazıldığını gösterir. lower, küçük harf; upper ise büyük harf
anlamına gelir. Daha aşağıda kullandığımız "preserve case"
seçeneğine bakarsanız konuyu daha iyi anlarsınız.
Eğer Samba'nın, dosya isimlerini kullanırken bir NT sunucu gibi
davranmasını istiyorsanız aşağıdaki seçenekleri kullanmalısınız.
preserve case = yes
short preserve case = yes
case sensitive = no
preserve case

© Mustafa Başer & Görkem Çetin - 2007 79


6. Samba Hizmet Yapılandırma Seçenekleri

Öntanımlı:
preserve case = no
Örnek:
preserve case = yes
Eğer "preserve case = no" verilirse, "default case" seçeneğine göre
dosya isminde yeralan karakterlerin tamamı ya küçük, ya da büyük
harfe dönüştürülür.
short preserve case
Öntanımlı:
short preserve case = no
Örnek:
short preserve case = yes
"short preserve case" seçeneği ise 8+3 dosya isimlerinde kullanılan
karakterlerin büyük mü yoksa küçük mü olacağını belirler.
mangle case
Öntanımlı:
mangle case = no
Örnek:
mangle case = yes
Daha yukarıda "default case" seçeneğinden bahsetmiştik. Bu
seçenekle birlikte kullanıldığı zaman, seçenekte belirtilen karakter
tipine (büyük ya da küçük) uyumluluk göstermeyen dosya
isimlerinin 8+3 formatına çevrilip çevrilmeyeceğini belirtir.

DOS Erişim Haklarının UNIX'e Uyarlanması


DOS ve UNIX izinleri yapı itibariyle büyük farklılıklar gösterir. DOS
tek kullanıcı iken UNIX sistemlerde aynı anda birden fazla
kullanıcının sisteme bağlanabilmesi nedeniyle bu farklılık kaçınılmaz
olmuştur.
Samba'nın yapması gereken, DOS'taki erişim düzenlemelerini UNIX'e
taşımaktır. Aşağıda yeralan Samba parametreleri bu işlemi kolayca
yapabiliyorlar.
Bir SMB istemcisi dosya üzerinde çalışırken, dosyanın read only (salt
oku) özelliğini değiştirebilir. Eğer read only seçeneği kapatılır, bir
başka deyişle tüm kullanıcılara yazma izni verilirse, UNIX tarafında
bu dosyaya yazma izni de verilmiş olur.
delete readonly

80 © Mustafa Başer & Görkem Çetin - 2007


Dosya Alanı Hizmetleri

Öntanımlı:
delete readonly = no
Örnek:
delete readonly = yes
Bir Linux sistemde, dizine yazma hakkı olan bir kullanıcı, dizin
içindeki dosyalara yazma hakkı olmasa bile bu dosyayı silebilir.
Normalde Samba farklı davranır. NT benzeri bir koruma kullanarak,
kullanıcının, yazma hakkı olmadığı bir dizinde dosya silmesine engel
olur. Eğer "delete readonly = yes" kullanılırsa Samba, bir Linux
sistem gibi hak tanıyacaktır.

Hidden, System ve Archive Özelliklerinin Linux'ta


Tanımlanması
DOS'taki hidden, system ve archive dosya özelliklerinin tam karşılığı
Linux'ta yoktur. Aşağıdaki eşlemeler yardımıyla bu sorun Samba'da
bir nebze giderilebiliyor.
map hidden
Öntanımlı:
map hidden = no
Örnek:
map hidden = yes
Dosyayı, grubunun çalıştırma hakkına eşler.
map system
Öntanımlı:
map system = no
Örnek:
map system = yes
Dosyanın sahibi ve grubu dışında kalan kullanıcılara verilen
çalıştırma hakkına eşler.
map archive
Öntanımlı:
map archive = yes
Örnek:
map archive = no
Dosyayı, sahibinin çalıştırma hakkına eşler.

© Mustafa Başer & Görkem Çetin - 2007 81


6. Samba Hizmet Yapılandırma Seçenekleri

"hide dot files" parametresi seçilirse Linux tarafında bulunan ve "."


karakteri ile başlayan dosyalar, SMB istemciler tarafından
görülmeyeceklerdir.
hide dot files
Öntanımlı:
hide dot files = yes
Örnek:
hide dot files = no
Bu özelliği kaldırmak ve tüm dosyaların listelenmesini sağlamak için
"hide dot files = no" seçeneğini kullanmalısınız.
hide files
Öntanımlı:
Yok, yani tüm dosyalar listelenebiliyor.
Örnek:
hide files = /home/gorkem
Daha yukarıda da gördüğünüz gibi, Samba işin biraz da "üçkağıdını"
bularak, dosya grubu, sahibi ve diğer kullanıcıların dosyayı
çalıştırma haklarını DOS'taki hidden, archive ve system özelliklerine
eşleştirebiliyor. Böylece Linux'ta kullanılmayan (daha doğrusu bir
anlam ifade etmeyen) bu özellikler, Windows ve DOS istemcileri için
hayat kurtarıcı oluyor.
"hide files" seçeneğinde, Linux üzerindeki "hidden" özelliği verilmiş
dosyalar, istemciler tarafından görülmeyecektir. Eğer bu seçeneği
aktif kılarsanız, Samba'nın performansında gözle görülür bir
yavaşlama kaçınılmaz olacaktır.

Dosya Kilitleme
SMB, üç çeşit dosya kilitleme yöntemi kullanır:
1. bayt-range locking
2. deny modes
3. opportunistic locks

Her kilitleme yöntemi birbirinden farklı bir yapı içerir.

1. bayt-range file locking


locking

82 © Mustafa Başer & Görkem Çetin - 2007


Dosya Alanı Hizmetleri

Öntanımlı:
locking = yes
Örnek:
locking = no
"locking" seçeneği, Samba'ya "bayt-range locking" özelliği verir.
Öntanımlı olarak bu kilitleme aktiftir.
strict locking
Öntanımlı:
strict locking = no
Örnek:
strict locking = yes
Eğer strict locking seçeneği açık ise (yes), dizin üzerinde yapılan tüm
okuma ve yazma işlemlerini Samba denetleyecek, dosya üzerinde
bayt-range locking var ise işlemi kesecektir.

2. Deny modes
share modes
Öntanımlı:
share modes = yes
Örnek:
share modes = no
SMB "deny modes", bir dosya açıldığı zaman diğer istemciler
tarafından gelen okuma ve yazma isteklerini denetler, gerekirse
engeller. Normal bir istemci-sunucu ağ yapısında, herhangi bir
dosyanın tüm istemciler tarafından yazılabilir olması beklenemez.
"deny modes", bu gibi sorunları engeller.
Öntanımlı şekli, "share modes = yes" tir.

3. Opportunistic Locking
oplocks
Öntanımlı:
oplocks = yes
Örnek:
oplocks = no
fake oplocks

© Mustafa Başer & Görkem Çetin - 2007 83


6. Samba Hizmet Yapılandırma Seçenekleri

Öntanımlı:
fake opclocks = yes
Örnek:
fake opclocks = no
Opportunistic locking, diğer kilitleme yöntemlerine nazaran biraz
daha karmaşıktır. ıstemci, bir dosyayı sunucudan aldıktan sonra
üzerinde işlem yapar, bu sırada sunucuya yazmaz. Başka bir
istemci, aynı dosyayı açmak istediği zaman bu durum engellenir. ılk
istemci tarafından dosya düzgün bir şekilde kaydedilmedikçe diğer
istemciler, bu dosya üzerinde değişiklik yapamazlar.

Yazıcı Hizmetleri
Bir SMB istemcisi Samba tarfından sunulan bir yazıcı hizmetine bir
dosya gönderirse, Samba ilk olarak bu dosyayı "path" parametresi ile
tanımlanan yere geçici olarak kopyalar. Kopyalanan bu dosyanın izin
ve hakları, gönderen kullanıcıya göre ayarlanır. Daha sonra Samba,
UNIX yazıcı komutunu çalıştırır ve bu komut geçici olan bu dosyayı
"spool" dizinine aktarır. Samba geçici dosyayı kendisi silmez, ancak
bu işlem lpr komutuna -r parametresi verilmesi ile gerçekleşir.
Bu bölümde okuyacağınız bilgiler sadece referans amaçlıdır. Düzgün
bir yazıcı yapılandırması istiyorsanız, "Yazıcı Sorunlarını Giderme"
konusunu sayfa 103'dan okuyunuz.
printable
Öntanımlı:
printable = no
Örnek:
printable = yes
Eşdeğer:
print ok
Eğer "printable = yes" seçeneği herhangi bir hizmetin içinde verilirse,
bu hizmetin Samba tarafından bir yazıcı paylaşım seçeneği olduğu
anlaşılır.
Bir hizmet için "printable = yes" seçeneği varsa, aynı zamanda "read
only =true" seçeneği de geçerlidir.
printer
Öntanımlı:
Yok

84 © Mustafa Başer & Görkem Çetin - 2007


Yazıcı Hizmetleri

Örnek:
printer = laserwriter
Eşdeğer:
printer name
"printer" seçeneği, yazdırma isteklerinin gönderileceği yerel yazıcıyı
belirtir. Bu yerel yazıcı printcap dosyasında tanımlı olmak
zorundadır.
printer driver
Öntanımlı:
Yok
Örnek:
printer driver = HP LaserJet 5Si/MX
Samba ile çalıştığınıza göre Microsoft ağlarını yakından tanıyor
olmalısınız. Bir Windows NT sunucusundaki paylaştırılan yazıcı
düzgün bir şekilde yapılandırılmışsa, ağ istemcilerinden birisi bu
yazıcıyı kullanmak üzere kurmaya çalıştığında, yazıcı sürücülerini
Windows NT'den alabilmektedir. Bu sayede, her istemci makinaya
yazıcı kurulurken sağdan soldan yazıcı sürücülerini içeren disketi
aramamış olursunuz. Aynı işlemi Samba ile yapmanız mümkün.
"printer driver" parametresi ile, istemci makinanın o yazıcı için hangi
sürücüyü kullanacağı belirtilir ve "printer driver location" ile
tanımlanan dizindeki dosyalar gönderilir.
printer driver location
Öntanımlı:
Yok
Örnek:
printer driver location = \\SambaSrv\yazicilar$
Windows işletim sistemi çalıştıran makinalara otomatik olarak bir
yazıcı sürücü gönderilebilmesi için bu sürücü programın yerini
belirtebilirsiniz.

Yerel Yazıcı Komutlarının Tanımlanması


Samba yardımıyla Linux üzerindeki yazıcıya bastırılmak üzere bir
dosya gönderilebilir, kuyruk görüntülenebilir ya da yazıcıya
gönderilmiş bir görev silinebilir. Bu işlemlerin tamamı, Linux'a
gönderilen lp* komutlarıyla yapılır. Ancak UNIX sistemler birden
fazla standartta üretildiği için yazıcı için kullanılan komutlarda da
farklılıklar görülebiliyor.

© Mustafa Başer & Görkem Çetin - 2007 85


6. Samba Hizmet Yapılandırma Seçenekleri

Sistem yöneticisi, yazdırma ve diğer işlemler için kullanılacak


komutları belirlerken makro da kullanabilir. Aşağıdaki makrolara
göz atın.
%s makrosu, yazdırılan dosyanın patikasını verir (örnek olarak
/tmp/yazdir.ps).
%f makrosu, sadece yazdırılan dosyanın adını verir (örnek olarak
yazdir.ps).
%p makrosu, yazıcının adını verir (örnek olarak lp0). Linux'ta birden
çok yazıcı tanımlanabilir.
%j makrosu, halihazırdaki görevin (job) numarasını verir. Linux, her
yazdırma işlemi için bir görev tahsis eder.
print command
Öntanımlı:
print command = lpr -r -P%p %s
(Linux sistemler için)
Örnek:
lpr -r -P%p %s ; echo "%s dosyasi yaziciya gönderildi" |
mail -s "Yazıcı çalışıyor..." root
"print command", Samba'nın yazıcıya bir dosya gönderdiği zaman
kullanacağı komutu belirler. Linux için öntanımlı komut lpr'dır,
ancak QNX ve HP/UX gibi sistemlerde değişir. Aslında hangi tür
yazıcınını kullanılacağı "printing" seçeneği ile kolayca değiştirilebilir.
Eğer Linux kullanıyorsanız, mutlaka "printing = bsd" seçeneğini
kullanmalısınız.
lpq command
Öntanımlı:
lpq command = lpq -P%p
(Linux sistemler için)
"lpq command", belli bir yazıcı üzerindeki yazıcı kuyruklarını
listelemek amacıyla kullanılan komutu verir. Yukarıdaki örnek tüm
Linux'larda kullanılabilir.
lprm command
Öntanımlı:
lprm command = lprm -P%p %j
(Linux sistemler için)

86 © Mustafa Başer & Görkem Çetin - 2007


Yazıcı Hizmetleri

"lprm command", bir yazıcıdaki kuyruğu silmek amacıyla


kullanılacak komutu belirler. Linux sistemler için yazıcı
kuyruğundaki bir görev lprm ile silinebilir.

© Mustafa Başer & Görkem Çetin - 2007 87


Üçüncü Kısım:Yapılandırma Örnekleri ve Çözümler

Üçüncü Kısım:
Yapılandırma Örnekleri ve
Çözümler

Bu kısmın temel amcı, sizlere yapılandırma örnekleri sunmak ve karşılaşacağınız bazı


sorunlara çözümler önermektir. Bir bölümde anlatılan bilgiler, bazen başka
bölümlerde tekrarlanmakta ve hatta başka kısmılarda bulunabilmektedir. Biz
konuların bütünlüğü açısından bu tekrarlamaların yersiz olmadığını düşünüyoruz. Bir
konuyu anlatırken elbette ki bazen başka yerleri okumanızı tavsiye ediyoruz, ancak
genel anlamda her bir bölümdeki bilgiler, oradaki sorunu çözmeye yetecek şekilde
verilmiştir.
Bu kısma Samba hakkında sıkça sorulan sorular (7. Bölüm) ile başladık. Bu sorular,
Samba ile birlikte gelen dökümanlardan yararlanılarak hazırlanmıştır. Kitabımızın
gelecekteki baskılarında sizlerin sıkça sorduğu soruların cevaplarını da ekleyeceğiz.
Samba'nın en çok eleştiri yapılan konusu hızına dairdir. Ancak bu eleştirilerin yersiz
olduğunu, iyi yapılandırılmış bir Samba'nın hiç yavaş olamayacağını 7. Bölümü
okuduktan sonra sizde anlayacaksınız. Ancak az sorun çıkartan bir sunucu ile yavaş
ta olsa (biz kabul etmiyoruz) çok sorun çıkartan ve baş ağrıtan bir sunucu ile çalışmak
daha iyidir diyoruz ve bu bölümü okuduktan sonra yorumu sizin yapamınızı istiyoruz.
Samba ile ilgili verdiğimiz çözüm yapılandırma örnekleri çoğu zaman hayat kurtarıcı
olmakta ve sizi 165 tane parametre ile boğuşmaktan kurtarmaktadır. Bu bakımdan,

© Mustafa Başer & Görkem Çetin - 2007 89


Üçüncü Kısım:Yapılandırma Örnekleri ve Çözümler

kitabımızın en önemli kısmı burasının olduğuna inanıyoruz.

90 © Mustafa Başer & Görkem Çetin - 2007


7. Sıkça Sorulan Sorular

7. Sıkça Sorulan Sorular

B u bölümde sizlere Samba ile ilgili sıkça sorulan soruları ve


cevaplarını vereceğiz. Açıklamalarımızı mümkün olduğu
kadar basit yapmaya çalıştık. ıleri de sizlerin de sıkça
sorduğunuz soruları da bu bölüme ekleyeceğiz.

Samba'yı Nereden Bulabilirim?


Samba paketinin son sürümü ftp://samba.anu.edu.au ya da
Türkiye'de Bilkent Üniversitesi yansısı ftp://samba.bilkent.edu.tr
adresinden alınabilir. Bu adrese girdikten sonra /pub dizininde,
Samba paketinin en güncel halini bulabilirsiniz.
Halen geliştirilmekte olan sürümler ise bir başka dizinde
(/samba/alpha) tutulmaktadır. Ancak Samba'nın geliştirme
sürümlerinin kararlı olmayabileceğini ve belgelerin eksik halde
bulunabileceğini de göz önünde tutmanızı öneririz.
Samba sadece kaynak koduyla dağıtılıyor. Bunun anlamı, yukarıda
belirttiğimiz adreslerin hiç birinde Samba'nın çalıştırılabilir
(derlenmiş) haline rastlayamazsınız demektir. Ancak internet
üzerindeki bazı sitelerde derlenmiş programları bulabilirsiniz. Ayrıca
en çok kullanılan Linux dağıtımları da Samba paketini kullanıcıların
beğenilerine sunarlar. Önerimiz, dağıtımlarla birlikte gelen Samba
paketleriyle çalışmanızdır.
Ayrıca, Türkiye'de de bir Samba yansısı vardır. samba.bilkent.edu.tr
adresi, samba.anu.edu.au web sitesinin güncel yansısını tutar.
Zaten kısıtlı olan band genişliğinden en fazla şekilde yararlanmak
için Bilkent yansısını kullanmanızı öneririz.

Samba Sürüm Numaraları Ne Anlama Geliyor?


Linux dünyasından gelenler, bir paketin sürüm numarasından, o
paketin hangi geliştirme aşamasında olduğunu anlayabilirler. Örnek
olarak Linux çekirdeğinin sürüm numarasında, ortadaki rakam tek

© Mustafa Başer & Görkem Çetin - 2007 91


7. Sıkça Sorulan Sorular

ise bu çekirdek "geliştirme" aşamasındadır. Bu rakamın çift olması


durumunda ise çekirdeğin kararlı olduğu farzedilir.
Samba'da da benzer bir durum geçerlidir. Samba'yı kullananların ve
geliştirenlerin sürekli olarak Samba'nın hangi sürümde olduklarını
anlamaları açısından bir sistem geliştirilmiştir. Örnek olarak,
Samba'nın 2.0.2 sürümünden 2.0.3 sürümüne geçildiği anda yeni
bir dağıtıma başlanmış demektir. Ancak bu dağıtım ftp sitelerine
hemen eklenmez. Üzerinde sürekli denemeler yapılır. Eğer yeni
sürümde bir hata bulunursa alfa sürümüne eklenir. Bu durumda
2.0.3alpha1, 2.0.3alpha2 sürümleri ınternet'e verilir.
Samba programlayıcıları, alfa sürümünün kararlı bir hale gelmesine
değin çalışmalar yaparlar. Bu çalışmalar sonunda sürüm numarası
2.0.3 olur.
Geliştiricilerin gözünden kaçan hatalar, 2.0.3 sürümünden sonra
yine telafi edilmeye başlanır. Bu durumda her güncelleneme
sonunda sürüm numarasının sonuna "p" harfi ile güncelleme
sırasını belirten bir rakam getirilir (2.0.3p1, 2.0.3p2 gibi)
Size naçizane önerimiz, Samba dağıtımının kararlı sürümlerinden
bir tanesini elde etmenizdir. ıçinde "alpha" kelimesi geçen paketler
yerine, kararlı olduğu kabul edilen paketleri indirin ve kurun.
Samba'nın Güncel Sürümü
Peki, Samba'nın son sürümünü kullandığımızı nereden bileceğiz?
Red Hat, SuSE, Caldera ve Mandrake dağıtımlarında, Samba paketi
ile ilgili bilgilere rpm komutu ile ulaşabilirsiniz. Aşağıdaki komut
yardımıyla Samba'nın sürüm numarasını öğrenmeniz mümkündür:
# rpm -qi samba
Name : samba Distribution: Apollo
Version : 1.9.18p10 Vendor: Red Hat
Software
Release : 5 Build Date: Sal 17
Kas 1998
01:14:05 EET
Install date: Paz 10 Oca 1999 01:38:09 EET Build Host:
porky.redhat.com
Group : Networking Source RPM:
samba-1.9.18p10-5.src.rpm
Size : 3133011 License: GPL
Packager : Red Hat Software <bugs@redhat.com>
Summary : SMB client and server
Description :
Samba provides an SMB server which can be used to provide
network services to SMB (sometimes called "Lan Manager")
...

ınternet'teki Samba Kaynakları


Okuduğunuz kitap, ilk Türkçe Samba kitabıdır. Kitabın yeterli bilgi
vermesi ve okuyucunun Samba'yı sorunsuzca kurup kullanabilmesi
için gecemizi gündüzümüze kattık. Ancak yine de merak ettiğiniz ve
yanıtını kitabın satır aralarında bulamadığınız sorular olabilir. Bu

92 © Mustafa Başer & Görkem Çetin - 2007


7. Sıkça Sorulan Sorular

gibi durumlarda referans amacıyla ınternet'ten faydalanabilirsiniz.


Aşağıda, Samba ile ilgili bilgilere çeşitli şekillerde ulaşmanın yollarını
anlatacağız.
1. Haberleşme listeleri: samba.anu.edu.au makinası üzerinde
binlerce kullanıcının üye olduğu Samba haberleşme listeleri
vardır. Bu listelere üye olmak için, listproc@samba.anu.edu.tr
adresine, içinde ("Subject" kısmında değil!)
subscribe samba Ad Soyadı
subscribe samba-announce Ad Soyad
satırları geçen bir e-posta yollayın (Ad ve Soyad yerine kendi
adınız ve soyadınızı yazın). Listeci sizi kaydedecek ve her iki
listeye de yollanan tüm mesajları görebileceksiniz.
Kaydolduğunuz birinci liste Samba genel tartışma listesidir.
"samba-announce" listesine de Samba programı hakkındaki
duyurular yollanır. Genel olarak haberleşme listeleri hakkında
daha fazla bilgi edinmek için, listproc@samba.anu.edu.tr adresine,
içinde "help" satırı geçen bir e-posta yollayın.
2. Haber öbekleri: comp.protocols.smb haber öbeği, samba ile ilgili
önemli tartışmaları bünyesinde barındırıyor.
Web sayfaları: http://samba.anu.edu.au adresinde, konu ile ilgili
pek çok web sayfası, belge ve kılavuz sayfalarına bağlantı
bulabilirsiniz. Ayrıca Samba haberleşme listesinin arşivi içinde
tarama yapmak isteyenler için bir tarama motoru da var.
3. Samba dağıtımı ile birlikte gelen çok zengin belgeleri merak
ettiğiniz bir konuda bilgi almak için kullanabilirsiniz. Bu belgeler,
Linux'unuzun
/usr/doc/samba-x.y.z/docs
dizini altındadır (x, y ve z rakamları Samba'nın sürüm
numarasını belirtir).
4. news.gelecek.com.tr adresinde, pek çok haber grubunun yanında
Samba haber grubu da mektuplarınızı bekliyor.

Samba'ya Erişmek ıstedğimde IPC$ şifresi Soruyor ve


Bağlantı Kuramıyorum.
Bu soru Samba ile ilgili sorulan soruların başında yer alıyor. Taze
yapılandırılmış bir Samba ağdan gelen şifrelenmiş parolaları
(enrypted password) kabul etmez. Oysaki Windows 9x ve NT'ler
bağlantı yapacakları sunuculara bu tür şifreler gönderirler.
Sorununuzu çözmek 14. bölümü (sayfa 153) okumanız gerekiyor.

© Mustafa Başer & Görkem Çetin - 2007 93


7. Sıkça Sorulan Sorular

Samba Sunucuyu Tarama Listesinde Göremiyorum!...


Tabi ki paniklemiyorsunuz, mutlaka bir çözüm yolu vardır. Eğer GUI
istemciniz, non-browsable bir sunucu seçmenizi engelliyorsa
aşağıdaki gibi bir komut çalıştırabilirsiniz:
net use N: \\mbaser\gorkem
Yukarıdaki örnekte, Lan Manager altında çalışırken N: sürücüsünü
\\mbaser\gorkem dizin hiyerarşisine bağlıyoruz.

Sunucu Üzerindeki Dosya ısimlerinde Garip karakterler Var.


ıstemci tarafından sunucu üzerindeki dosyalara baktığınız zaman
garip dosya isimleriyle karşılaşıyorsanız, bu dosya isimlerinde ya
büyük harfler vardır, ya da içinde geçen bazı karakterler, bu dosya
adının DOS uyumlu olmasını engelliyordur.
Her iki durumda da Samba sunucunuzu bu tür garip dosya
isimlerini göstermeyecek şekilde yapılandırabileceğinizi unutmayın.
smb.conf dosyasına ekleyeceğiniz
mangled names = yes
satırı ile bu sorundan kurtulabilirsiniz. Nadir durumlarda ise hiç bir
dosya ismini göremeyebilirsiniz. Yine yukarıdaki satır ile bu
sorundan kurtulmak mümkün olur.
Dosya isimlerinde ve açıklama satırlarında Türkçe karakter
kullanmayın. Windows dosya isimlerinde kod sayfası (code page) 857
kullanırken Linux ISO8859-9 standardını destekler, bu nedenle
uyumsuzluklar başgösterir.

"cannot locate specified computer" Hatası


Windows'tan Samba sunucuyu göremediğiniz zaman bu hatayı
alırsınız. Sorun ise ağ ayarlarının düzgün bir şekilde yapılmamış
olması ya da olmayan bir makinayı sunucu olarak göstermeye
çalışmanızdır.
Eğer sunucu makinanın adını doğru girdiğinize eminseniz, makinaya
ping, telnet ya da traceroute gibi bir programla bağlanmaya çalışın.
Bu sayede TCP/IP ağının düzgün işleyip işlemediğini anlayabilirsiniz.
Eğer makina adını vererek bağlanamıyorsanız, IP numarasıyla
bağlanmayı (ping) deneyin. IP numarasıyla bağlantı kurulabiliyorsa
sorun alan adı sunucusundadır.
Bu durumda önünüzde sapabileceğiniz iki keçi yolu var. Bunlardan
bir tanesi, Lan Manager ya da Windows for Workgroups altında,
LMHOSTS dosyasına bir makina girdisi yazmak. C:\WINDOWS
altında bulabileceğiniz bu dosyaya sunucunuzun IP numarası ve
adını yanyana yazmanız yeterlidir:

94 © Mustafa Başer & Görkem Çetin - 2007


7. Sıkça Sorulan Sorular

195.174.82.3 master
Eğer yukarıdakine benzer bir satırı kendi ağınıza uygun bir şekilde
değiştirip LMHOSTS dosyasına ekledikten sonra sorunun
çözüldüğünü görürseniz alan adı sunucusu çalışmıyor demektir.
Eğer yukarıdaki çözüm de sorunu gidermezse çok büyük ihtimalle ağ
yapılandırmasında bir sorununuz (donanım ya da yazılım) var
demektir.
Eğer yerel ağda bir alan adı sunucusu çalıştırmıyorsanız, ağdaki
sunucuları LMHOSTS dosyasına yapacağınız eklentilerle tüm
istemcilere tanıtmalısınız.

"cannot locate specified share name" hatası


Bu sorunu alıyorsanız, mutlaka Samba sunucu makinasına
ulaşmışsınız, ancak sunucunun verdiği hizmete bağlanmada sorun
var demektir. Bunun birçok nedeni olabilir:
• Erişmeye çalıştığınız hizmet kapalıdır (bakınız sayfa 71)
• Hizmet kullanıcı listesinde sizin hesabınız yoktur (bakınız
sayfa 70, 76)
• Hizmet, Samba'nın ulaşamayacağı üst dizinlerin
birisindedir (bakınız sayfa 75)
• Hizmet, doğru bir şekilde yapılandırılmamıştır
• Sadece misafir girişleri için ayrılmış bir hizmet olabilir
(bakınız sayfa 71)
.....

© Mustafa Başer & Görkem Çetin - 2007 95


8. Samba Sunucusunun Hızının Artırılması

8. Samba Sunucusunun Hızının


Artırılması

B u bölümde Samba sunucunuzun hızını artırmak için bir kaç


yol önereceğiz. Böylelikle Samba şu sistemden, bu sistemden
daha yavaştır tartışmasına son vereceğiz.

Karşılaştırmalar
Samba sunucusu istemcileri ile konuşurken TCP protokolünü
kullanır. Eğer Samba'nın performansını görmeye çalışıyorsanız, onu
aynı protokolü kullanan diğer programlar ile karşılaştırmalısınız. Bu
karşılaştırmaya en güzel örnek TCP protokolünü kullanan ftp
programını gösterebiliriz.
Eğer bu karşılaştırmayı NT veya Çalışma Grupları için Windows
(Windows 3.11, ÇGW) ile yapmak istiyorsanız, TCP dışındaki tüm
protokolleri istemci ve sunucuda iptal etmelisiniz. Böyle yapmaz
iseniz, başka şeyleri karşılaştırmış olacaksınız (örneğin NetBEUI) ki
yanlış bir işlem yapmış olursunuz.
Genel olarak Samba'nın hızının ftp'ye yakın olduğunu
gözlemlersiniz. Bu hız, NFS'den biraz fazla olmasına rağmen
sizteminize de oldukça bağımlıdır.
Birçok kere Samba Novell NetWare, NFS veya WinNT ile
karşılaştırılmıştır. Bazı durumlarda Samba en iyi, bazı durumlarda
ise en kötüsü çıkmıştır. Aslında hızdaki bu değişim Samba veya
diğer sistemler tarafından değil, kullanılan sürücü ve donanımlardan
kaynaklanmaktadır. Bahsi geçen sistemlerde aynı donanım
kullanıldığında, Samba'nın diğerleri ile yarışabilecek bir hıza sahip
olduğu kolaylıkla görülebilir.

© Mustafa Başer & Görkem Çetin - 2007 97


8. Samba Sunucusunun Hızının Artırılması

Fırsat Kilitlemesi (Oplock)


Yerel gizli dosya işlemleri için, SMB istemcisinin bir sunucudan izin
istemesine "fırsat kilitlemesi" (opportunistic lock) denir. Eğer bir
sunucu oplock yetkisi veriyor ise, istemci dosyaya sadece kendisinin
ulaştığını düşünmekte özgürdür. Hatta bazı oplock tiplerinde,
istemci dosyayı açma/kapama işlemleri için de gizleyebilir. Bu
şekilde performansta tartışılmaz bir kazanç elde edilir.
Samba'nın 1.9.18 sürümünden itibaren oplock desteği verilmiştir.
Bu destek öntanımlı olarak açık konumdadır, ve istenirse smb.conf
dosyasında aşağıdaki parametre kullanılarak kapalı duruma
getirilebilir.
oplocks = False
oplocks'un açık konumda olmasını tavsiye ederiz, çünkü yapılan
testlerde, oplock açık olduğunda hızda yaklaşık %30'luk bir artışın
sağlandığı saptanmıştır.

Soket Seçenekleri
Samba gibi TCP tabanlı sunucuların performansını büyük ölçüde
etkileyen birçok soket seçenekleri vardır.
Samba kullanıcılarının soket seçenekleri hem komut satırından (-O
seçeneği ile) hem de smb.conf dosyası aracılığı ile yapılandırılabilir.
Kitabınızın smb.conf dosyasının yapılandırılması ile ilgili bölümünde
soket seçeneklerinin nasıl yapılacağına dair geniş bilgileri
bulabilirsiniz.
Soket seçeneklerinin doğru bir şekilde yapılandırılması,
performansınızı inanılmaz derecede artırabilir, fakat yanlış
yapılandırılması durumunda ise hızınızı bir miktar azaltır. Bunun
doğru yapılandırılması tamamen yerel ağınıza bağlıdır.
Birçok ağlar için TCP_NODELAY soket seçeneği, tek başına hızı
büyük ölçüde etkileyen faktördür. Birçok kişi smb.conf dosyasında
"socket options = TCP_NODELAY" parametresini kullanmakla,
Samba araçlarından okuma hızını iki katına çıktığını belirtmişlerdir.

Okuma Büyüklüğü (Read Size)


"read size" seçeneği, diskten okuma/yazma ile ağdan okuma/yazma
hızını etkileyen faktördür. Eğer SMB komutları ile (SMBwrite,
SMBwriteX ve SMBreadbraw) aktarılan veri büyüklüğü bu değerden
büyük olursa, sunucu ağdan tüm veriyi almadan yazmaya başlar

98 © Mustafa Başer & Görkem Çetin - 2007


Okuma Büyüklüğü (Read Size)

veya SMBreadbraw'da olduğu gibi, diskten tüm veri okunmadan ağa


yazılmaya başlanır.
Öntanımlı değer 16384 dür, fakat bu konuda en iyi performansı
yakalamak için çok az sayıda deney yapılmıştır ve en iyi değerin
sistemden sisteme değişeceği muhakkaktır. 65536 den fazla bir
değerin kullanılması anlamsızdır ve belleğin gereksiz yere
kullanılmasına neden olur.

max xmit
ıstemci ve sunucu başlangıçta bütün SMB komutlarının boyutunu
belirleyen bir "maximum transmit" (maximum taşıma) boyutunu
belirler. Bu büyüklüğü belirtmek için smb.conf dosyayı içerisinde
"max xmit" seçeneği ile belirleyebilirsiniz. Bu büyüklüğün Samba
sunucusuna ait olduğunu ve istemci ile ilgisi olmadığını belirtelim.
Samba istemcisinin hangi büyüklüğü kabul edeceğini Samba
sunucusu tarafından belirlenir ve istemci de bunu kabul eder.
Bunun öntanımlı değeri en çok 65536 bayttır, fakat bazı istemciler
daha küçük taşıma sınırlarında daha iyi çalışmaktadır. Bu değerin
2048'den daha küçük olması sunucunun birçok sorunla
karşılaşmasına neden olur. Çoğunlukla öntanımlı değerin en iyi
seçenek olabileceğini söyleyebiliriz.

Kilitleme (Locking)
Samba önceki sürümlerinin tersine, öntanımlı olarak her
okuma/yazma istemi için ciddi bir kilitle uygulamaz. Eğer böyle bir
kilitlemeyi smb.conf dosyasında "strict locking = yes" parametresini
kullanarak uygularsanız, bazı sistemlerde büyük oranda performans
değişikliği görürsünüz.
Performansın yerel dizinlere bindirilmiş NFS dosya sistemlerinde çok
arttığını göreceksiniz. Hatta yerel disklerde bile azçok bir artış
meydana gelebilir.

Paylaşım Tarzları
Bazı Samba kullanıcıları sunucuda dosya açmanın çok yavaş
olduğunu bildirmişlerdir. Bunun nedeni DOS tarafından istenen
paylaşım tarzının Samba'da tam olarak uygulanmamsıdır. Bunu
smb.conf dosyasında "share modes = no" parametresini kullanarak
yapabilirsiniz. Bunu yaptığınızda dosya açma ve kapamada birçok
kazancınız olacak, ancak bunun anlamı çoğu zaman, bir dosya bir

© Mustafa Başer & Görkem Çetin - 2007 99


8. Samba Sunucusunun Hızının Artırılması

kullanıcı için okuma/yazma tarzında açıldığında, ikinci bir kullanıcı


için aynı dosyanın salt okunur tarzda açılmasına zorlanmayacaktır.
Windows uygulamalarının hemen hepsi, paylaşım tarzına bağımlıdır,
bu yüzden Samba'nın öntanımlı olarak bu tarzın açık olarak
bırakılmasında fayda vardır.
Samba'nın paylaşım tarzı 1.9.17 sürümü ile birlikte tekrar
düzenlenmiş, ve Windows NT ile aynı şekle getirilmiştir.

Hata Ayıklama Düzeyi


Eğer hata ayıklama düzeyini 2'nin üzerinde tutarsanız, performansta
önemli bir düşüşe sebep olabilirsiniz.

Geniş Bağlantılar (wide links)


Öntanımlı olarak geniş bağlantılar (wide links) seçeneği açık tutulur.
Daha fazla güvenlik için bunu kapatırsanız, dosya isimleri
çözümlemesinin zoralşmasından dolayı hızda bir düşüş
yaratabilirsiniz. Bu düşüşü engellemek için, öntanımlı değer olan,
"getwd cache = yes" yapmalısınız. "wide links" ile ilgili açıklamaları
sayfa 75'de bulabilirsiniz.

Ham Okuma (read raw)


"read raw" işlemi, düşük güvenirlikte okuma işlemleri için
geliştirilmiştir. Bazı sunucular bunu desteklemeyebilir, fakat
Samba'da öntanımlı olarak bu destek açık tutulmuştur.

Ham Yazma (write raw)


"write raw" işlemi, düşük güvenirlilikte yazma işlemleri için
geliştirilmiştir. Bir sunucu bu desteği vermeyecek şekilde
yapılandırılabilir. Samba'da öntanımlı olarak bu destek vardır. Bazı
makinalar ham yazmayı normal yazmadan daha yavaş yapabilir,
böyle durumlarda "write raw=no" yaparak ham yazmayı kapatmada
fayda vardır.

100 © Mustafa Başer & Görkem Çetin - 2007


Okuma Tahmini

Okuma Tahmini
Samba bazı SMB komutlarında okuma tahmini yapabilmektedir.
Okuma tahminini şu şekilde açıklayabiliriz: Samba en son okuduğu
dosyadan bir sonraki SMB komutu gelmeden fazladan bazı verileri
okur. Bu sayede, bir sonraki istek gelir gelmez daha hızlı bir şekilde
cevap verebilir.
Bu özellik öntanımlı olarak kapatılmıştır. Bunu açmak için smb.conf
dosyasında "read prediction = yes" parametresini kullanabilirsiniz.
Unutmayın okuma tahmini sadece okunmak üzere açılmış dosyalar
için yapılır.
Samba istek gelmeden önce okuma tahminini yaparken "read size"
seçeneğinde beliritlen miktardan daha fazla okuma yapmaz. Her
zaman 1k bloklar aralığında okuma işlemini gerçekleştirir.

Bellek Eşleme (memory mapping)


Samba hafıza eşlemeden dosya okumayı destekler. Bazı makinalarda
bu performansta büyük bir artışa yol açarken, bazılarında hiçbir
değişiklik yapmaz bazılarında ise azalma bile meydana getirebilir.
Bu desteği açmak için Makefile dosyasındaki FLAGS satırında
-DUSE_MMAP seçeneği ile yeniden derleme yapmalısınız.
Bellek eşleme sadece salt okunur dosyalar için kullanılır ve ham
okuma için geçerli değildir. Bu nedenle bellek eşlemeyi daha güçlü
kılmak için ham okumayı kapatmanız (smb.conf dosyasında "read
raw =no" kullanarak) yararınıza olabilir.

Yavaş ıstemciler
16 bit tabanlı 386 PC'ler, sunucudan işleyebileceklerinden daha çok
veri isterler. Gelen verilerin yoğunluğu zaten hantal olan bu
sistemleri hızlarını çok düşürmektedir. Bunu önlemek için protokolü
değiştirmek yerine "read raw = no" ve "max xmit = 2048"
yapılandırmasını yapmak daha faydalıdır. Bazı durumlarda "read
size" değerininin düşürülmesi işe yarayabilir.

Yavaş Girişler
Yavaş girişlerin başlıca nedeni parola denetleme zamanından
kaynaklanır. "password level" parametresinde düşük değerlerin
kullanılması giriş zamanını oldukça düşürmektedir. Makefile

© Mustafa Başer & Görkem Çetin - 2007 101


8. Samba Sunucusunun Hızının Artırılması

dosyasında "UFC crypt" seçeneğini de açarak Samba'yı tekrar


derleyebilrisiniz.

İstemci Ayarları
Bazen hız sorununu istemci makinalarda da izlemek faydalıdır.
ıstemcilerde (örneğin Çalışma Grupları için Windows, ÇGW) bazen
daha iyi TCP performansına sahip olması için ayarlama yapılabilir.
Bununla ilgili detaylı bilgileri istemcinize ait dökümanlara
bakmalısınız. Birçok kullanıcı ÇGW'lerde TCPWINDOWSIZE ve
TCPSEGMENTSIZE seçeneklerinin hız üzerinde çok büyük etkisi
olduğunu belirtmiştir.
Bilinmeyen bir nedenden dolayı, SYSTEM.INI dosyasındaki [MSTCP]
bölümünde DefaultRcvWindow parametresi için 3072 değerinin
kullanılması performansta önemli bir artış sağlamaktadır. Hatta bu
değeri 16384 veya daha büyük yapmakla hızı daha da artmaktadır.
Bir başka örnekte bir kullanıcı bu değeri 3072'den 8192'de
çıkarmakla performansta 30 kat artışın olduğunu bile söylemektedir.

102 © Mustafa Başer & Görkem Çetin - 2007


9. Yazıcı Sorunlarının Giderilmesi

9. Yazıcı Sorunlarının Giderilmesi

S amba'da yazıcı sorunlarını nasıl gidereceğinize dair ipuçlarını


bu bölümde vereceğiz. SMB istemcilerinin Samba tarafından
paylaştırılmış yazıcılarda çıktı almadaki sorunlarına da
değineceğiz. Samba'nın diğer SMB sunucularına nasıl çıktı
göndereceğini de yine bu bölümün sonunda bulabilirsiniz.
Bu bölümü okuduğunuza göre ağınızdaki herhangi bir sunucudan
Samba makinasının çalıştığı Linux'a bağlı bir yazıcıdan çıktı almaya
çalışıyorsunuz demektir. Aslında Samba'nın yazıcı sunucusu olarak
görev yapabilmesi için mutlaka Linux makinasına bağlı bir yazıcı
bulunması gerekmiyor. Samba'nın paylaştıracağı yazıcı, Linux
makinasında doğru olarak yapılandırılmış bir başka yazıcı da
olabilir. ışte bazı örnekler
• lpd ile ulaşabileceğiniz TCP/IP yazıcılıarı
• IPX desteği ile Linux'tan çıktı alabildiğiniz Novell Netware
Yazıcıları
• Paylaştırılmış başka bir SMB (NT, Win95, ÇGW ile paylaştırılmış)
yazıcısı
• Netatalk ile Linux'tan çıktı alabildiğiniz MAC yazıcıları
Bu bölümün amacı Linux'tan yukarıdaki yazıcılardan (SMB hariç)
nasıl çıktı alabileceğinizi tartışmak değildir. Ağınızdaki herhangi bir
yazıcıya Linux'tan çıktı gönderebiliyorsanız, bu yazıcıyı Samba ile
ağınızdaki SMB istemcilerine nasıl paylaştırabileceğinizi bu bölümde
bulacaksınız.
Samba'da yazıcı paylaşımı ile ilgili tüm ayarlamaları smb.conf
dosyasından yapacaksınız. Yazıcı paylaşımını doğru bir şekilde
yapabilmek için, "Hizmet Yapılandırma Seçenekleri" bölümündeki şu
parametreleri okumuş olmalısınız
print command (sayfa 86)
lpq command (sayfa 86)

© Mustafa Başer & Görkem Çetin - 2007 103


9. Yazıcı Sorunlarının Giderilmesi

lprm command (sayfa 86)


Samba o kadar akıllı olmadığı için bu komutların nasıl
kullanacağına dair yapılandırılması gerekmektedir. Birçok sistemde
bu komutlar şu şekilde kullanılmakdatır:
print command = lpr -r -P%p %s
lpq command = lpq -P%p
lprm command = lprm -P%p %j
Buradaki % işaretleri, kullanımları sırasında alınacak dinamik
değerleri göstermektedir:
%s, yazılacak dosya ismi ile otomatik olarak değiştirilir
%p, çıktı gönderilecek yazıcının ismi ile değişrtirilir
%j, lpq komutundan alınan görev numarası ile değiştirilir
Yazıcı sorunlarını gidermek için, öncelikle Samba'nın her bir komutu
nasıl algıladığını ve bu komutla ne iş yapmaya çalıştığını öğrenmek
gerekir. Örneğin print komutunda %s işareti ne ile değiştiriliyor,
bunu bilmesi şarttır. Bunun için print komutunu lpr ile çalıştırmak
yerine kendine gelen değişkenleri bir dosyaya kopyalama, daha
sonra bu dosayayı incelemek çoğu zaman çözüme götüren bir hata
ayıklama metodu olmuştur. Bunu yapmak için print komutunu şu
şekilde kullanabilirsiniz:
print command = cp %s /tmp/tmp.print
Eğer bu yazıcıya bir çıktı gönderecek olursanız, gönderdiğiniz
dosyanın isminin Samba tarafından doğru olarak algılanıp
algılanmadığını /tmp/tmp.print dosyasını inceleyerek
anlayabilirsiniz. Bu durumda elbetteki yazıcıdan çıktı alamazsınız
Sorunlarının çoğu /etc/printcap dosyasının yanlış
yapılandırılmasından veya yazıcı kuyuklarına çıktı gönderecek
kişilerin yazıcıyı kullanma haklarının olmayışından
kaynaklanmaktdır.
Sorunların bir başka kaynağı ise /dev/null düğümünün yazılamaz
olmasından kaynaklanmaktadır. Eğer bu düğüm yazılabilir durumda
değilse Samba çıktı gönderemeyecektir.
Çok karşılaşılan diğer sorunları ise aşağıya sıralamaya çalıştık:
• ıstemci PC'lerin birinden çıktı göndermeye çalışan kullanıcının,
çıktı göndermeye çalıştığı yazıcı kuyruğunu kullanma hakkı
yotur. Hatta bazı durumlarda lpr komutunu kullanma hakkı bile
yoktur. Bu sorunları giderin.
• Her çıktıdan sonra bir boş kağıt alıyorsunuz. Bunu lpr
sisteminden düzeltiniz, çoğu zaman /etc/printcap dosyasının
düzeltilmesi ile sorun giderilmiş olur. Bazı durumlarda bu
istemcinin yanlış yapılandırılmasından da
kaynaklanabilmektedir. Windows 9x altında şöyle bir seçenek

104 © Mustafa Başer & Görkem Çetin - 2007


9. Yazıcı Sorunlarının Giderilmesi

vardır: Start  Settings  Printers  Yazıcı Adı  (sağ tuş) 


Properties  Postscript  Advanced, burada her görevin sonuna
Ctrl+D eklenemsini sağlayacak bir seçenek vardır (şekil-9.1'e
bakınız). Bazı durumlarda bu da her çıktı sonununda boş bir
kağıdın çıkmasına neden olmaktadır.

Şekil- 9.1: Windows yazıcılarının PsotSrcript özelliğinde "Send CTRL+D" şeçeneği işaretli
olduğunda Samba aracılığı ile Linux'a çıktı gönderirseniz, her görevin sonunda boş bir kağıt
çıkar.

"print command" seçeneğini kullanarak birçok güzel iş yapabilirsiniz.


Örneğin %U değişkeini bu seçenekte kullanarak yazıcı kuyruğuna
hangi kullanıcının çıktı gönderdiğini belirleyebilirsiniz. Hatta
çıktıların boyutlarını hesaplayıp kullanıcılara, boyuta dayalı bir çıktı
sınırlaması (kota) bile koyabilirsiniz.

"testprns" ile yazıcıların denetimi


Yazıcıların Samba'da geçerli olup olmadığını testprns programı ile
denetleyebilirsiniz. Bu komut tanımlanmış olan yazıcıların smbd
sunucusu (Samba) ile kullanılabilirliğini denetler. Bu komutnu
kullanımı şu şekildedir:
testprns <yazıcı ismi> <printcap ismi>
<yazıcı ismi>: Denetlenecek yazıcının ismidir. Bu isim /etc/printcap
dosyasındaki herbir yazıcı kaydının ilk alanından alınır. Dikkat
ederseniz bir yazıcının denetimi için yazıcı isminden başka bir bilgiye

© Mustafa Başer & Görkem Çetin - 2007 105


9. Yazıcı Sorunlarının Giderilmesi

ihtiyaç yoktur. Eğer testprns komutu yazıcıyı doğru olarak


bulabiliyorsa, Samba'nın bu yazıcıyı kullanabilmesi gerekir.
<printcap ismi>: Sınanacak yazıcının yapılandırıldığı printcap
dosyasının ismini belirtir. Eğer bu parametre testprns komutuna
verilmeyecek olursa, bu programın derlenme esansındaki öntanımlı
/etc/printcap dosyasına bakacaktır.
Sistemimizde "lp" adı ile tanımlanan yazıcıyı sınamak için
#testprns lp
Looking for printer lp in printcap file /etc/printcap
Printer name lp is valid.
Gördüğünüz gibi lp adlı bir yazıcının doğru yapılandırıldığı
konusunda testprns komutu bizi bilgilendirmektedir.
Eğer yazıcı bulunamazsa aşağıdaki gibi bir uyarı alacaksınız:
#testprns hp690c
Looking for printer hp690c in printcap file /etc/printcap
Printer name hp690c is not valid.

Windows 95 Makinalarına Yazıcı Sürücülerini


Paylaştırmak
Eğer bir Windows NT'den paylaştırılan yazıcıyı explorer ile tarayıp
farenizin sağ tuşuna bastığınızda "install" komutunu verirseniz,
yazıcı için gerekli olan sürücülerin otomatik olarak yüklendiğini
göreceksiniz. Bu sürücüler, daha önceden NT sunucsuna
yüklenmişlerdir. Aynı işi Samba ile de yapmak istiyorsanız, aşağıda
vereceğimiz açıklamaları teker teker okuyup uygulayın
şimdi, "Apple LaserWriter Pro 630" yazıcı sürücülerinin istemcilere
Samba tarafından sağlanması için neler yapmanız gerektiğine adım
adım hep beraber bakalım.
1. Öncelikle, "Apple LaserWriter Pro 630" yazıcısını çalışan bir
Windows9x te kurun. Bunun için "Start  Settings  Printers  Add
Printer" yolunu takip ederek yani bir yazıcı ekleyin. şekil-9.2'de
görüldüğü gibi Sol pencereden "Apple", sağ pencerede "Apple
LaserWriter Pro 630" seçeneğini seçip "Next" ile ilerleyin. Daha sonra
sorulan sorulara uygun cevaplar vererek kurulumu tamamlayalım.
Yazıcınızı listeden bulamaz iseniz, "Have Disk..." düğmesine
tıklayarak kurulumu disk (ya da CD) den tamamlayın.

106 © Mustafa Başer & Görkem Çetin - 2007


Windows 95 Makinalarına Yazıcı Sürücülerini Paylaştırmak

Şekil- 9.2: Yazıcınızınızn markasını sol, modelini sağ pencereden seçin.

2. Yazıcı sürücülerini yerleştireceğiniz yeni bir dizin açın ve smb.conf


dosyasında bu dizini paylaştırın. Örnek olarak;
[printer$]
comment=Apple Laser Writer Pro 630 icin Suruculer
path=/usr/local/Samba/printer
public=yes
writable=no
browseable=yes
3. Bu yazıcıya ait gerekli olan sürücülerin listesini oluşturmalısınız.
Birinci basamakta yazıcıyı kurduğunuz Windows 9x makinasından
msprint.inf ve msprint2.inf (c:\windows\inf dizininden) dosylaraını
Linux'unuza alın. Elinizdeki yazıcı için dosyanın içeriğini inceleyelin.
Windows98'de marka isimleri A-K ile başlayan yazıcılar için gerekli
olacak sürücülerin listesi msprint.inf dosyasında, geri kalanlarınki
ise msprint2.inf dosyasındadır. Eğer kurulumu yazıcınız ile birlikte
gelen bir diskten yapmış iseniz, tanımlar c:\windows\inf dizini
altında oem?.inf dosyasında olacaktır. Buradaki "?" karakteri yerine
herhangi bir sayı gelebilir. Bu dosyaları inceleyerek hangisinin sizin
yazıcınıza ait olduğunu saptayın. Burada bir Apple yazıcı için
sürücülerin paylaşımının nasıl yapılacağını göreceğimizden,
msprint.inf dosyası üzerinde işlem yapacağız. şimdi make_printerdef
programını dosya ismi ve yazıcı ismi parametrelerini vererek
çalıştırın. (Aşağıdaki ilk iki satırın tek satırda olması gerekiyor.)

© Mustafa Başer & Görkem Çetin - 2007 107


9. Yazıcı Sorunlarının Giderilmesi

#make_printerdef msprint.inf "Apple LaserWriter Pro 630"


>> printers.def
Found:APTOLLW1.SPD
End of section found
CopyFiles: @APTOLLW1.SPD,PSCRIPT
Datasection: PSCRIPT_DATA
Datafile: APTOLLW1.SPD
Driverfile: PSCRIPT.DRV
Helpfile: PSCRIPT.HLP
LanguageMonitor: PostScript Language Monitor
Copy the following files to your printer$ share location:
APTOLLW1.SPD
PSCRIPT.DRV
PSCRIPT.HLP
PSCRIPT.INI
TESTPS.TXT
APPLE380.SPD
FONTS.MFM
ICONLIB.DLL
PSMON.DLL
Bu program gerekli olan dosyaları ekrana yazacaktır. Bu listedeki
tüm dosyaları gidip Windows 9x makinanızdan alıp (veya paylaştırıp
smbclient ile de alabilirsiniz) ıkinci basamakta açtığımız "printer$"
paylaşıma kopyalayın. Eğer smb.conf dosyanızda "preserve case =
yes" parametresini kullanmış iseniz, size verilen listedeki dosya
isimleri ile kopyaladığınız dosyaların isimlerinin tamamen aynı
olduğundan emin olun.
4. Son olarak, smb.conf dosyasına iki satır eklemeniz gerekecektir.
Birincisi [global] tanımlarda "printer driver file" (yeni oluşturduğunuz
yazıcı tanımlama dosyasını göstermek üzere) satırını eklemektir.
Bunu şu şekilde yapabilirsiniz:
[global]
........
printer driver file=/usr/local/Samba/lib/printers.def
.........
ıkincisi ise her paylaştırdığınız yazıcı bölümüne "printer driver
location" (istemcilerin gerekli dosyaları nereden alacağını söylemek
üzere) parametresinin eklenmesidir. Yazıcı sürücüsünün
parametrelerini, Windows yazıcı ismi ile aynı yapmayı unutmayın.
Örneğin;
[AppleLW630]
comment = Apple Laser Yazıcısı
browseable = yes
printable = yes
public = yes
writable = no
create mode = 0700
printer driver=Apple LaserWriter Pro 630
printer driver location=\\%h\PRINTER$
Buradaki %h makrosu bilgisayar ismi ile yer değiştirecek, PRINTER$
ise birinci basamakta tanımladığınız paylaşımı gösterecektir. "printer

108 © Mustafa Başer & Görkem Çetin - 2007


Windows 95 Makinalarına Yazıcı Sürücülerini Paylaştırmak

driver" parametresine atadığınız ismin Windows yazıcı ismi ile aynı


olası gerektiğini bir kez daha hatırlatıyoruz.

Linux'tan SMB Yazıcılarına Çıktı Gönderilmesi


Ağınızda paylaştırılmış olan tüm yazıcılara (paylaştıran işletim
sistemi ne olursa olsun) Linux'tan çıktı gönderebilirsiniz. Yerel
ağlarda en çok kullanılan Windows 9x/NT yazıcılarına Linux'tan
çıktı gönderme görevini Samba yerine getirmektedir. Eğer Red Hat /
Mandrake tabanlı bir Linux dağıtımı kullanıyorsanız, Linux'un SMB
yazıcılarını kullanacak şekilde yapılandırılması oldukça kolaydır. X-
Window altından root olarak şu komutu çalıştırın:
#printool
"printtool" aracı, grafik arabirimde Linux yazıcılarını düzenlemenizi
sağlamaktadır. Dolayısı ile /etc/printcap dosyasını elinizle
düzenlemek zorunda kalmaz ve birçok hatadan kendinizi kurtarmış
olursunuz.
Karşınıza gelen pencerede "Add" düğmesine tıklayarak yeni bir yazıcı
eklemek üzere bir sonraki adıma geçin. şimdi şekil-9.3'de görüldüğü
gibi "SMB/Windows 95/NT Printer" seçeneğini seçin.
Size gelen uyarı metnini de "OK" diyerek geçin. şimdi sıra yazıcımızı

Şekil- 9.3: "printool" yardımıyla Linux'u SMB yazıcılarına çıktı gönderecek şekilde
yapılandırmak oldukça kolay.

yapılandırmaya geldi. Şekil-9.4'teki gibi kutucukları uygun bir


şekilde doldurun. Dikkat etmeniz gereken noktalar şunlar:
• Yazıcıyı paylaştıran makinanın ismini doğru olarak girin.
Örneğimizde, gorkem makinasının yazıcısına çıktı
göndermeye hazırlandığımız görünüyor.
• Eğer WINS (ya da DNS) gibi isim çözünürlüğünü yapacak
bir sisteminiz yok ise, sunucunun IP adresini de girmeniz

© Mustafa Başer & Görkem Çetin - 2007 109


9. Yazıcı Sorunlarının Giderilmesi

gerekiyor. Aslında IP adresini yazmanın, ilerde doğacak


sorunları ortadan kaldırması açısından yararınızadır.
• Yazıcı ismini yazarken, tarama listesindeki ismi yazmanız
(paylaşım ismi) gerekiyor.
• Eğer yazıcı sunucusu Windows 9x ise, ve bu yazıcıya bir
şifre atanmışsa "user" ve "Password" kutucuklarının her
ikisine bu şifreyi yazmak doğacak sorunları ortadan
kaldırmaktadır. Sunucu Windows NT ya da UNIX ise,
buraların kuyruktan çıktı alabilen bir kullanıcıya ait
bilgilerle doldurulması gerekiyor.
• Sunucu WindowsNT ise "Workgroup" kutucuğunu da
doldurmalısınız.
Bu bilgileri doğru bir şekilde girmiş iseniz, yazıcı sunucusu yerel
ağınızda olmasa bile Linux'tan çıktı alabileceksiniz.

Şekil- 9.4: SMB sunucusuna çıktı göndermek için gerekli bilgilerin girilmesi gerekiyor.

Düzgün bir çıktı alabilmek için filtreyi de (Input Filter)


ayarlamanız gerekiyor. Bu amaçla "Select" düğmesine tıklayın.
Karşınıza çıkacak olan pencerenin örneğini şekil-9.5'te
görebilirsiniz. şimdi bu şekli kullanarak bir kaç önemli noktayı
açıklayalım:
• Yazıcının marka ve modelini doğru bir şekilde seçmelisiniz.
gorkem sunucusundaki "HP 690 C" yazıcısına çıktı
göndermeyi istediğime göre, "Printer Type" penceresinden
"HP DeskJet 550/560/6xx series" seçeneğini tıklamalıyım.

110 © Mustafa Başer & Görkem Çetin - 2007


Linux'tan SMB Yazıcılarına Çıktı Gönderilmesi

Şekil- 9.5: Yazıcıya ait bilgileri doğru bir şekilde girin.

Bu yazıcılar her ne kadar 600x600 dpi çözünürlüğünü


desteklese de, elimde 300x300 seçeneğinden başka
olmadığına göre mecburen bu çözünürlüğü kullanıyorum.
• "Paper Size" penceresinde "a4" seçeneğini tıklıyorum.
Program Amerikan standartlarına göre öntanımlı olarak
"letter" (mektup) tipi bir kağıt kullanmayı yeğleyecektir.
• Eğer bu yazıcıya ascii yapısındaki dosyaları
göndereceksem, "Fix stair-stepping text" seçeneğini
işaretlemeliyim.
Son olarak, doğru bir yapılandırma yaptığınızdan emin olmak
için "Tests" menüsünden "Print ASCII test page" ve "Print
Postscript test page" alt menüleri ile çıktı gönderin.
Artık bu yazıcıyı yerel Linux'tan kullanabilir ya da diğer SMB
(hatta NetWare ve MAC) istemcilerine paylaştırabilirsiniz.

© Mustafa Başer & Görkem Çetin - 2007 111


10. Samba 2.0 ile NT Alanınına Katılmak

10. Samba 2.0 ile NT Alanınına


Katılmak

S amba 2.0 ile bir NT alnanına katılmak istiyorsanız, öncelikle o


alanın ana denetçisi (Primary Domain Controller) olan NT'de
"Server Manager for Domains" programını kullanarak
Samba'nın NetBIOS ismini alana eklemeniz gerekir. Bu sayede
alanın SAM kayıtlarında Samba için bir hesap açılmış olur.
şimdi alana nasıl katılacağınızı bir örnek ile açıklamaya çalışalım.
NetBIOS ismi mbaser olan bir Samba 2.0 sunucunuzun olduğunu,
Ana Alan Denetçisinin NetBIOS ismi PENGUEN_NT olan PENGUEN
alanına girmek istediğinizi düşünün. şekil-10.1'de bu durum
resimleştirilmiş durumda.
Alana katılabilmek için öncelikle Samba sunucularını (smbd ve
nmbd) durdurun ve daha sonra şu komutu çalıştırın:
#smbpasswd -j penguen -r penguen_nt
Alana başarılı bir şekilde katılırsanız, şu mesajı görürsünüz:
#smbpasswd: Joined domain penguen.
Daha detaylı bilgi için sayfa 189'daki "smbpasswd" konumuza bakın.
Bu komut, Samba sunucusu ile iletişime geçerek makina hesabının
parolasını değiştirir. ıstemci makinaya ait bu parola rastgele
değerlerden oluşur ve diğer kullanıcınların parolasının da
bulunduğu /usr/local/Samba/private dizininde bir dosya içine
yazılır. Bu dosyanın adı aşağıda gösterildiği şekildedir:
<NT ALANI>.<Samba Sunucu ısmi>.mac
Yukarıdaki açıklamalarımız doğrultusunda,

© Mustafa Başer & Görkem Çetin - 2007 113


10. Samba 2.0 ile NT Alanınına Katılmak

şekil- 10.1: Samba, Windows NT alanlarına tıpkı bir Windows NT Workstation gibi katılabilir.

penguen.penguen_nt.mac
isimli bir dosya oluşturulacaktır. Bu dosya root kullanıcısına ait
olmalı ve herhangi bir kullanıcı tarafından okunamamalıdır. Bu
dosya tamamen alan güvenliği ile ilgilidir ve /etc/shadow dosyasını
ne kadar diğer kullanıcılardan koruyorsak, benzer bir politika
izlemeliyiz. Uzun lafın kısası dosyanın okuma hakları olmamalıdır.
Samba sunucunuzu başlatmadan önce ona hangi NT alanının bir
üyesi olacağını söylemek üzere, smb.conf dosyasındaki [global]
tanımlarında
security = domain
workgroup = penguen
şeklinde bir yapılandırma yapmalısınız. Yani güvenlik düzeyinizi alan
(domain), ve çalışma gurubunuzu da katılacağınız NT alanı olarak
değiştiriniz. Bunun dışında "encrypt passwords" parametresine
atayacağınız değer "yes" olmalıdır ki, böylece parolalar alan
denetçisine şifrelenmiş olarak gönderilsin.
Son olarak [global] bölümünde şöyle bir tanımlama yapın:

114 © Mustafa Başer & Görkem Çetin - 2007


10. Samba 2.0 ile NT Alanınına Katılmak

password server = penguen_nt


Eğer, yedek alan denetçileriniz de var ise, bunların NetBIOS
isimlerini de aralarında bir boşluk bulundurarak ekleyiniz.
Samba şimdilik, ana alan denetçisini Windows NT nin yaptığı gibi
WINS sunucusuna sorup ya da ağ ortamına istekte bulunup
öğrenemiyor. Bu nedenle AAD NetBIOS ismini smb.conf dosyasında
belirtmek zorundasınız.
Samba gelişltiricileri başlangıçta, NT'nin yaptığı gibi bir yöntem
düşünmüşler ancak, bunun yeteri kadar güvenli olmadığı kanısına
varıp terketmişlerdir. Ancak bazı kullanıcıların NT tipi bir Samba
sunucu istemeleri karşısında, ileride bu konuda NT gibi davranan
Samba sürümlerinin de olması muhtemeldir. Bu sürümlerin isimleri
de diğerlerinden muhtemelen ayrı olacaktır.
Samba sunucunuzu başlatın ve alan güvenliği düzeyinde bir istemci
olmaya hazırlanın
şimdilik, güvenlik düzeyini "alan" yapsanız bile, bu Samba sunucuna
bağlantı yapacak kullanıcıların yerel UNIX makinasında tanımlama
ihtiyacını ortadan kaldırmaz. Bunun anlamı, penguen\mbaser
kullanıcısı Samba sunucusuna bağlanacaksa, bu kullanıcının yine
bir UNIX kullanıcısı ile eşlenmesi gerek demektir. Samba sunucusu
NT sunucusundan onaylama yapmasını istediğinde aynen Windows
95'ler gibi parolayı Windows NT sunucusuna gönderir.
Alan güvenlik düzeyinin getirisi şudur: Samba Windows NT'ler ile bir
nevi alan güven ilişkilerine girebilmektedir. Bunun'da ötesinde,
Samba artık, kullanıcıların onayında Alan Denetçisinde kayıtlı
kullanıcıların listesini ve parolasını alabilmekte ve kullanıcıları
onaylayabilmektedir. Bu da, daha ilerde Samba'ya bağlantı yapacak
kullanıcıların UNIX kullanıcılarla eşlenmesi şartının ortadan
kalkacağının habercisidir. Yani Samba, Ana Alan Denetçisi ya de
Yedek Alan Denetçisinden kullanıcı listeleri ve bunlara ait bilgileri
alabilecek ve bu bilgiler doğrultusunda yerel UNIX kullanıcıları
oluşturabilecektir. Samba'nın bu özelliğini dikkatle takip edin.

© Mustafa Başer & Görkem Çetin - 2007 115


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

11. NT Alanı ile ilgili Sıkça Sorulan


Sorular

B u kısımda, Samba'nın NT makinalar için alan denetçiliği


yapabilmesi için yapmanız gerekenleri ve çıkabilecek
sorunların çözümlerini anlatmaya çalışacağız. Samba'nın
genel anlamda kurulması ve yapılandırılması ile ilgili bilgileri burada
tekrarlamayacağımızdan, bu tür sorunlarınız var ise, kitabınızın ilgili
yerini okumalısınız.

1.1 Samba'nın Ana Alan Denetçisi (AAD=PDC) desteğinin


olup olmadığını nasıl anlarım? şu anda bu konuda Samba ne
gibi fonksiyonları yerine getiriyor?
Eğer Samba'yı Windows NT 3.51 ve 4.0 istemcileri için AAD olarak
kullanmak istiyorsanız ve sisteminizdeki kurulu Samba sürümü
2.0'dan düşükse, kaynak kodunun en son sürümünü elde etmeli ve
aşağıda açıklayacağımız gibi yeniden derlemelisiniz. Samba'nın NT
istemcileri için AAD olarak yapabileceklerinin listesi ise şöyledir:
• Windows NT 3.51 (Service Pack 5) ve 4.0 (Service Pack 4)
istemcileri için AAD olarak görev yapabilir. Bu görev içerisinde,
alana yeni makina eklenmesi, kullanıcıların alana girişinde kimlik
denetimlerinin yapılması gibi görevler sayılabilir.
• Alandaki kullanıcı hesap bilgilerini, Windows NT araçlarından
"User Manager for Domains" programı kullanılarak görebilirsiniz.
• Samba kaynaklarını, herhangi bir NT istemcisinden "Server
Manager for Domains" programını kullanarak görebilirsiniz.
• Windows 95 istemcileri, "kullanıcı güvenlik düzeyi" ile paylaşım
yapabilirler, ancak kullanıcıların listelenmesi henüz
tamamlanmamıştır. Paylaşım yapılacak makinada, hangi
kullanıcıların ne şekilde kullanılması isteniyorsa el ile girilmelidir.
• Makina hesabındaki parola güncellemeleri yapabilir.

© Mustafa Başer & Görkem Çetin - 2007 117


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

• NT istemcisinden kullanıcı parolasının değiştirilmesi yapabilir.


• Kullanıcı ⇔ RID (Relative ID=Göreceli ID) eşlemesi
gerçekleştirebilir.
• Windows NT kullanıcı ve grup eşlemesinde kısmi destek
sağlayabilir.
• LDAP parola veri tabanı desteği verebilir.
Bu eksikliklerin 2.1 sürümü ile giderileceği belirtilmiştir. Bu kitap
hazırlanırken son sürüm numarası 2.0.3 idi. Samba'nın NT'ler için
AAD desteği 2.0 kodu ile birlikte başlamıştır. Aşağıdaki özellikler
henüz Samba'da yoktur, fakat en kısa zamanda ekleneceğini
bekliyoruz.
• Güven ilişkileri
• AAD ⇔ YAD (Yedek Alan Denetçisi, BDC) entegrasyonu
• Ağ yazıcıları (soru 2.5'e bakınız).

2.1 Samba'yı NT'lere Alan Denetçisi yapmak için kodu


nereden indirebilirim?
Samba'yı internetten indirebileceğiniz adreslerden birkaçı şöyle
• ftp://samba.bilkent.edu.tr
• http://www.samba.org

2.2 NT Workstation/Server istemcilerini Samba tarafından


denetlenen alana nasıl sokarım?
• Samba'nın en son sürümünü alın ve derleyin.
• Samba'yı "encrypted" parola desteği ile yapılandırın. Bununla ilgili
bilgileri kitabınızın ilgili bölümünden bulabilirsiniz (sayfa .153)
Burada isterseniz, Samba'nın yeni yapılandırma ile düzgün
çalışabilir olduğunu kontrol edin.
• Samba AAD içerisinde makina hesabı oluşturmak için, önce
/etc/passwd dosyasında
<kullanıcı_adı> <iş_istasyonu_adı>$
hesabı oluşturun. Tanımladığımız bu kullanıcılar, gerçek UNIX
kullanıcıları olmadığından sistemede girecek şekilde ayarlanmalarına
gerek yokur. Kabuk yerine sırası ile /dev/null ve /bin/false
koyabilirisiniz. ışte size iki makina için hazırlanmış örnek,

118 © Mustafa Başer & Görkem Çetin - 2007


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

ws1$:*:801:800:NT is istasyonu 1:/dev/null:/bin/false


ws2$:*:802:800:NT is istasyonu 2:/dev/null:/bin/false
şimdi aşağıdaki komutu çalıştırın
smbpasswd -a -m <iş_istasyonu_adı>
Bu komut, etc/smbpasswd dosyası içerisinde aşağıdaki yapıda bir
satır oluşturacaktır:
workstation_name$:uid:LM_XXX:NT_XXX:[W ]:LTC-XXXX:
Burada LM_XXX ve NT_XXX alanları sırası ile LanMAN ve NT MD4
sistemine göre parolanın 16 bitlik ascii gösterimidir.
Bir makina alana giriş yaptığında, kendisinin öntanımlı parolasını
kullanır (küçük harfler ile NetBIOS ismi). Bir kere giriş yaptı mı,
istemci makina rastgele değerlerden oluşan bir parola seçecek ve
"encryption" anahtarı olarak ta eski parolasını kullanacaktır. Bu
yüzden eğer makina isminde bir değişiklik yapacaksanız, bu
makinayı tekrar tanımlamak zorundasınız.
• Eğer NT server ile giriş yapıyorsanız, User Manager for Domains'i
kullanarak, her kullanıcının (Everyone) yerel makinadan giriş
yapabilmesini sağlamak amacı ile "everyone" gurubuna "log on as
locally" hakkını verin. Aslında bu işlemi AAD'si NT olan bir alana
giriş yapmak istiyorsanız da yapmak zorundasınız.
• smb.conf dosyasında aşağıdaki ayarları yapın:
; Çalışma alanı isminize gor değiştirin
workgroup = Samba
; iş istasyonlarına Samba'nın AAD olacağını söyler
domain logons = yes
• smbd'yi çalıştırdığınızda hakları rw-r--r-- olan Samba.SID adlı bir
dosya oluşturulacaktır. Bu dosya Samba AAD için bir SID
oluşturacaktır. Dosya ismi, "workgroup" parametresine göre
değişiklik arzedecektir. Eğer bu dosyanın içeriği değişecek olursa
hiçbir alan üyesi giriş yapamayacaktır.
• Sonraki basamağa geçmeden önce Samba'yı çalıştırın ve bir hata
olup olmadığını denetleyin. Eğer ilk kez NT'leri Samba'nın
denetimi altına sokmaya çalışıyorsanız, smb.conf dosyasında "log
level = 10" yaparak yapılan her işin kaydının tutulmasını
sağlayın. Kayıt dosyasını inceleyerek herşeyin yolunda gittiğinden
emin olun.
• NT Network Settings'de (ağ ayarlarında) alan adını Samba yapın.
şu aşamada sakın bir kullanıcı açmaya yeltenmeyin. Eğer doğru
yaptıysanız SAMBA alnına kabul edildiğinizi belirten "Welcome to
the Samba Domain." mesajını alacaksınız.
Eğer başarısız olmuşsanız, önce hata ayıklama düzeyini biraz
artırın. tcpdump komutu ile neler olup bittiğine göz atın.

© Mustafa Başer & Görkem Çetin - 2007 119


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

"NETLOGON, a SAMLOGON on UDP port 138" gibi bir ibare


görmeniz gerekir. Eğer göremiyorsanız, "domain logons = yes"
parametresini doğru yapılandırmamış olabilirsiniz veya NetBIOS
isim çözünürlüğünde bir sorununuz var demektir.
139. portta bir tane LSA_OPEN_POLICY, iki tane
LSA_QUERY_INFO ve bir veya iki tane LSA_CLOSE görmelisiniz.
Belki wkssvc'ye bir boru bağlantısı ve hatta srvsc üzerinde "Net
Server Get Info" bile görebilirsiniz.
şimdi "Welcom .." mesajını gördüğünüzü varsayıyoruz. Her zaman
olduğu gibi her değişiklikte NT makinanızı baştan
başlatıyorsunuz.

2.3 Alana katılmak istediğimde "The machine account for


this computer either does not exist or is not accessible." (Bu
makina için bir hesap yok veya erişilebilir değil) mesajı
alıyorum.
Samba AAD alanında makina hesaplarının doğru açıldığını
smbpasswd dosyasından denetleyin. Eğer hesapları smbpasswd
aracını kullanmak yerine elle (yukarıda yaptığımız gibi) açmışsanız,
makina isimleri sonunda "$" işareti ve makina isimlerinin küçük
harflerle şifreli olarak yazmış olduğunuzdan emin olun. Bazı
kullanıcılar, Samba ve NT istemcilerinin farklı alt ağlarda
bulunmasından dolayı bazı sorunlarla karşılaştıklarını iletmektedir.
Sunucu ve istemcilerin aynı alt ağda olmasına da dikkat edin.

2.4 Samba'nın denetlendiği alana katıldım fakat giremiyorum


(login).
• Makinanız ilk defa açıldığında, Ctrl-Alt-Delete tuşlarına
basarsanız, karşınıza giriş yapabileceğiniz üç kutucuk çıkacaktır.
Eğer bu tuşlara bastığınızda yaklaşık 20 saniyelik bir gecikme
yaşıyorsanız, büyük bir ihtimalle bir sorun vardır. Bu aşamada iş
istasyonunuz LSA_ENUMTRUSTEDDOMAIN isteiğinde
bulunuyor.
Alan kutucuğunun makina ismi ve Samba alan adı olmak üzere
iki içeriği olmak zorundadır. Her yerel hesap makina ismi
altındadır. Genel gruplar, "domain group map" parametresi ile
tanımlanır. Samba alanını seçin, Samba sunucusundaki
smbpasswd dosyasında LM/NT OWF veritabanında geçerli olan
bir kullanıcı adı ve parolası yazın.

120 © Mustafa Başer & Görkem Çetin - 2007


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

2.5 NTDOM kodunda yazıcı kuyruğu (\PIPE\spools) desteği


ne durumdadır?
\spools borulama uygulaması desteği Samba 2.0 dan itibaren tam
olarak desteklenmiştir. Eğer Samba sunucusuna bir yazıcı kuyruğu
eklerseniz, bu ağınızda LanMan yazıcı portu gibi görünecektir.
Ağınızdaki yazıcıları hiçbir sorunla karşılaşmadan kullanabilmeniz
gerekir.

2.6 Devamlı olarak "trust account xxx should be in


DOMAIN_GROUP_RID_USERS." mesajını alıyorum. Ne
yapmalıyım?
Hiçbirşey. Bu mesaj tehlikesizdir.

2.7 Alana başarılı bir şekilde katılabiliyorum, fakat


Samba'nın yeni sürümünü yükledikten sonra, giriş yapmaya
çalışırken "The system can not log you on (C000019B),
Please try again or consult your system administrator"
mesajını alıyorum.
Eğer WORGROUP.SID doyassında saklanan SID değiştirilirse bu
mesajı alırsınız. Samba'nın yeni sürümünü yüklediyseniz, bu dosya
da bir yenisi ile değiştirilmiş olacaktır. Dolayısı ile SID değişmiştir.
Bu sorundan kurtulmak için, yeni sürümü yüklemeden önce SID
numarasını bir yere kaydedin ve yeni oluşan dosya içerisine
ekledikten sonra alan istemcisini alan dışına atın ve tekrar alana
girin.

3.1 Alana giriş süreçlerini test edebileceğim araçlar var


mıdır?
Aslında en büyük araç Samba'nın kendisidir. Eğer smbd ve nmbd
sunucularını "-d" seçeneği ile çalıştıracak olursanz, hangi hata
ayıklama süzeyinde çalıştığınızı öğrenirsiniz. Kitabınızdaki smbd,
nmbd ve smb.conf dosyaları ile ilgili yerlere bakın. Hata ayıklama
düzeyi 0 ile 10 arasında deiğişebilir, 3 civarındaki bir seviye hangi
tür hatalar yaptığınızı size verebilir.
Bazı olayları izlemek için Microsoft Windows NT kurulum CD'si ile
birlikte gelen "Network Monitor" programını da kullanabilirsiniz.
Netmon'un bu sürümü iki makina arasında gidip gelen paketleri
izlemek amacı ile kullanılabilir. NT kurulum dosyaları ile birlikte
gelen program, yerel makinada bulunan NT ağ trafiğini tüm alt ağa
yayar.

© Mustafa Başer & Görkem Çetin - 2007 121


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

3.2. "Network Monitor" programını Windows NT veya


Windows 9x makinalarına nasıl yüklerim?
NT makinalarına Network Monitor programını yüklemek birkaç
basamak gerektirir. Biz aşağıda Windows NT Server 4.0 ile birlikte
gelen paketin nasıl kurulacağını açıklayacağız. Elinizde Windows NT
Workstation CD'si ile Windows NT Server CD'si bulunmalıdır. ılk
olarak "Network Monitor Tools and Agent" aracını yüklemelisiniz.
Bunun için
1. Start  Settings  Control Panel  Network Services  AddE
gelin
2. "Network Monitor Tools and Agent" hizmetini seçin ve "OK"
düğmesine tıklayın
3. Network Control Panel'i kapatın.
4. Sisteminiz, sizden NT CD'si istediğinde bunu CD-ROM'a koyun.
Windows 9x makinalara yüklemek biraz daha kolay, Windows 9x
CD'nizdeki \admin\nettools\netmon dizinini yerel makinanıza
kopyalayın ve netmon.exe programını çalıştırın.

4.1.1 smb.conf dosyasında giriş dizinini "logon path =


\\%N\%U\profile" şeklinde yapılandırmanın sakıncası nedir?
Windows istemcileri NT alanına logon olduğunda (bu alan ister bir
NT sunucusu ister Samba tarafından denetlensin) [homes] (veya %U)
paylaşımına bağlantı kurarlar, bu bağlantı kullanıcı sistemden
çıktığında da devam eder. şunların olduğunu düşünün:
• Birinci kullanıcının Windows NT makinasına giriş
yaptığını varsayalım, bu durumda [homes] paylaşımı
\\sunucu\kullanıcı1 olacaktır.
• Birinci kullanıcı bir süre çalıştıktan sonra sistemden
çıkış yapsın.
• ıkinci kullanıcı aynı Windows NT makinasına giriş
yapsın.
NT makinası [homes] paylaşımına bağlantısını hala devam ettirdiği
için (daha önce \\sunucu\kullanıcı1 idi) işletim sistemi "profile"
isteminde bulunduğunda birinci kullanıcının ev dizininden istemeye
çalışacaktırı alamayacağı içi hata mesajı verecektir. Bu soruna en iyi
çözüm ayrı bir [profiles] paylaşımı oluşturmaktır. Örneğin "logon
path = \\%N\profiles\%U" gibi.

122 © Mustafa Başer & Görkem Çetin - 2007


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

4.1.2 Alan yöneticisi kullanıcıları niçin aynı "profile"


dosyasını kullanır?
Windows NT'de iyi bilinen birçok RID vardır. Bunlardan birisi Sistem
(Alan) Yöneticisi (Administrator) için kullanılan 500'dür. UNIX'te ise
root uid'si "0" dır. Samba UNIX üzerinde çalıştığına ve Administrator
yetkisinine sahip kullanıcılar root kullanıcısına eşlendiğine göre,
doğal olarak alan yöneticilerinin hepsi aynı rofile dosyasını
kullanacaklardır. Ancak Samba'da NT ile benzerliğin sağlanması için
"0" yerine yeni bir (500) uid üretilir ve alan yöneticilerine atanır. Tüm
alan yöneticilerine 500 atandığına göre aynı profile dosyasını
kullanmaları doğaldır.

4.2.1 Komut satırından, alan hesabını kullanmaya çalışan bir


aracı çalıştırdığımda, "'No mapping between usernames and
ID's was done" (Kullanıcı ismi ve ID'si arasında bir eşleme
yok) mesajını alıyorum.
Kullanıcı ismi ⇔ RID eşlemesi ile bazı uzaktan çağırım yöntemleri
desteği tam olarak verilememiştir. Eğer böyle bir hatayı alırsanız,
nasıl aldığınızı da detaylı bir biçimde ntdom@samba.org e-posta
listesine iletiniz.

4.2.2. Alan hesapları ve grupları kullanmak istiyorum fakat


çalışmıyor.
Bunları kullanan bazı araçlar çalışmaktadır. Örneğin, NT Sec aracı
çalışabilmektedir. Yerel ACL dosyalarında alan kullanıcıları ve
gurupları başarılı bir şekilde tanımlanabilmektedir. Bu tür araçlar
aynı zamanda paylaşım izinlerinde de alan hesapları ve guruplarını
da desteklemektedir. Fakat Windows Explorer (Windows Gezgini)
çalışmamaktadır. Windows NT ile birlikte gelen calacs.exe de
çalışmaktadır.

4.2.4 Roaming (gezici) profiller, sunucu üzerinde


güncellenmemiş gibi görünüyor.
Bunun birkeç nedeni olabilir:
• ıstemci makinanın Ana Alan Denetçisi (AAD= PDC) ile eş zamanlı
kılındığından emin olun. Bunu yapmak için istemci makinada
(genelde giriş betiklerinde) net time \\sunucu /set/yes komutunu
çalıştırabilirsiniz. AAD Samba olabilir.
• Bazen Windows istemcisi kullanıcı logoff olur olmaz bağlantıyı
kesmeyebilir
• Bazı kullanıcılar "logon path" dizininin de taranabilir (browsable)
olması gerektiği iddiasında bulunmaktadırlar.

© Mustafa Başer & Görkem Çetin - 2007 123


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

4.3.1. Bir kullanıcı hesabını "alan yöneticisi" olarak nasıl


tanımlarım?
Bu konudaki daha detaylı bilgileri smb.conf dosyasının
yapılandırılması ile ilgili bölümden görebilirsiniz. Burada birkaç not
vereceğiz:
Bir kullanıcıyı "Domain Admins" (Alan Yöneticisi) yapmak için.
• Bir UNIX grubu seçin (örneğin bu amaç için "adm" grubunu
tanımlayabilirsiniz). Aşağıdaki satırı smb.conf dosayına ekleyin.
domain group map = /usr/local/Samba/lib/domaingroup.map
• şimdi /usr/local/Samba/lib/domaingroup.map dosyasını
oluşturun. Bu dosyanın içerisine aşağıdaki satırı yazmalısınız
adm="Domain Admins"
• /etc/group dosyası içerisinde "Domain Admin" olarak
kullanılacak grubu (adm) tanımlayınız. Bu guruptaki kullanıcılar
iş istasyonlarında Alan Yöneticisi haklarına sahip olacaklar ve
bunlara "Domain Admins policy" (Alan Yöneticileri Politikası)
uygulanacaktır. Bunlar iş istasyonunu alandan çıkartabilirler,
ekleyebilirler, ya da makina üzerindeki profillerde değişiklik
yapabilirler.
Yerel makinalarda kulanıcıları Administrator (Yönetici) yapmak için;
• smb.conf dosyası içerisine aşağıdaki satırı ekleyin:
local group map = /usr/local/Samba/lib/localgroup.map
• Uygun bir UNIX grubu seçin, örneğin "wheel", ve localgroup.map
dosysı içerisine aşağıdaki satırı yazın:
wheel=BUILTIN\Administrators
• /etc/group dosyası içerisininde "wheel" gurubuna hangi
kullanıcıların Yerel Yönetici olmasını istiyorsanız onları ekleyin
NT kullanıcı hesaplarını UNIX hesapları ile eşlemek için smb.conf
dosyası içerisine aşağıdaki satırı ekleyin:
domain user map = /usr/local/Samba/lib/domainuser.map
• /usr/local/Samba/lib/domainuser.map dosaysın şu satırı yazın
root=Administrator
Ve şu komutu çalıştırın
#smbpasswd -a root
son olarak bir parola girin.

124 © Mustafa Başer & Görkem Çetin - 2007


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

4.3.2 Sistem politikalarını çalıştıramıyorum


Sistem Politikalarının (System Policies) doğru olarak çalışmamasının
belli başlı iki nedeni vardır:
• smb.conf dosyası içerisinde aşağıdaki yapılandırmayı doğru
olarak yaptığınızdan emin olun:
[netlogon]
locking = no
public = no
browseable = yes
• Büyük-küçük harflere olan duyarlılıkla oynayın ve hata ayıklama
seviyesini yükseltin. NT istemcilerinin hangi dosyalara baktığını
gözlemleyin. Birçok kullanıcı NTconfig.pol, NTconfig.POL veya
ntconfig.pol kullanarak başarıya ulaştıklarından bahsederler.
ntconfig.pol kullanmak için, en iyi yapılandırmanın aşağıdaki
olduğuna inanıyoruz:
case sensitive = no
case preserve = yes
default case = yes

4.4.1 Uzaktan parola değiştirmenin (UNIX ve Samba)


çalışabilmesi için ne yapmalıyım?
smb.conf dosyasında aşağıdaki yapılandırmanın var olduğunu
doğrulayın:
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *password* %n\n *password* %n\n
*successfull*
ıkinci ve üçüncü satırlardaki değerler sistemden siteme değişebilir.
passwd programı "root" hakları ile çalışır, bu yüzden verdiğiniz
metnin "root" işlemleri için geçerli olduğundan emin olmalısınız.
Kılavuz sayfaları; kelimeler arasındaki boşlukların kabul edilebilmesi
için tırnak (') işaretinin kullanılmasından bahseder. Samba
kullanıcıları ise bunun doğru olarak çalışmadığını söylemektedirler.
Aslında en iyisi kelimeler arasındaki boşluğu önlemektir. Bunun
yöntemi ise Samba'yı derlemeden önce, makefile dosyasına
-DALLOW_CHANGE_PASSWORD satırını eklememektir (varsa
çıkarmak). Eğer NIS kullanıyorsanız, Samba sunucusu mutlaka ana
NIS makinasında çalışmalıdır.

© Mustafa Başer & Görkem Çetin - 2007 125


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

5.1 Samba kullandığıma göre NT Server CD'si almak


zorunda değilim. Bu durumda "User Manager for Domains",
"Server Manager" ve "Windows NT Policy Editor" araçlarını
nasıl edineceğim?
Microsoft bu araçların Windows 95 sistemlerinde kullanılan
sürümlerini dağıtmaktadır. Bu araçlar şunlardır
• Server Manager
• User Manager for Domains
• Event Viewer
Bu araçları inidrebileceğiniz sitenin adresi:
http://www.microsoft.com
Aşağıdaki programların Windows NT 4.0 sürümleri
• User Manager for Domains
• Server Manager
Microsoft'un ftp sunucusundan edinilebilir. Bu sunucunun adresi:
ftp://ftp.microsoft.com
ntconfig.pol dosyasını oluşturmak veya değiştirmek için mutlaka NT
Server Policy Editor (poledit.exe) aracını kullanmalısınız. Bu araç
ise NT Server (NT Workstation değil) ile birlikte dağıtılmaktadır.
Windows 95 ile birlikte gelen Policy Editor programını NT üzerine
kurabilseniz bile, NT politikalarını yapılandırmakta kullanamazsınız.
Eğer Windows NT policy editor aracını edinmek istiyorsanız, bu
aracın bir kopyasının Windows NT 4.0 sürümü Service Pack 3 (ve 4)
içerisinde bulabilirsiniz. ılgili dosyaları seçerek kullanabilirsiniz.

6.1 Samba'yı bir NT alanı üyesi (AAD olarak değil) nasıl


yaparım?
Samba artık [global] tanımlarında "security" parametresi için yeni bir
değeri desteklemektedir. "security = domain" yaparak, Samba'yı bir
NT alanının üyesi yapabilirsiniz, hatta bu alanın denetçisi (AAD)
başka bir Samba sunucusu olsa bile. Samba makinası NT alanına
girebilir, fakat kullanıcılar mutlaka /etc/passwd dosyasında tanımlı
olmalıdır. "security = domain" yapılandırmasının Samba 2.0'dan
itibaren geçerli olacağını unutmayınız.
şimdi basamak basamak neler yapmanız gerektiğini açıklamaya
çalışalım (aşağıdaki açıklamalarımızda "istemci"den kastımız, NT
alanına girecek üzerinde Samba çalışan UNIX makinadır):

126 © Mustafa Başer & Görkem Çetin - 2007


11. NT Alanı ile ilgili Sıkça Sorulan Sorular

• Samba istemcisi için AAD(PDC)'de bir hesap açın. Eğer bunu AAD
Samba'da yapıyorsanız, bu bölümdeki soru 2.2'de belirtilen
açıklamaları izleyiniz. NT Server da yapıyorsanız, normal bir
makina hesabı açmak için kullandığınız yöntemi uygyulayın.
• ıstemci'deki smb.conf dosyasında [global] tanımlarında şu
yapılandırmayı yapın
workgroup = <NT Alanı>
password server = <AAD'nin NetBIOS ismi>
(Unutmayın <NT Alanı> ve <AAD'nin NetBIOS ismi> yerine
ağınızdaki değerleri yazmalısınız.
• ıstemci makinada Samba'yı çalıştırınız. smbd tarafından
oluşturulacak smbpasswd dosyasına ait dizinin var olması
gerektiğini hatırınızdan çıkartmayın.
• Son olarak istemci makinada "smbpasswd -j <NT Alanı>"
komutunu çalıştırın. Herşey yolunda ise Samba'nın <NT
Alanı>'na katıldığına ait bir mesaj alacaksınız. Bu sırada,
MACHINE.SID ile aynı dizinde <NT Alanı>.<NetBIOS ismi>.mac
dosyasının olştuğunu göreceksiniz. Bu dosyada Samba alan
üyesinin güven hesabı parolası yazılıdır. Dosyanın hakları
"rw-------"'dır, kesinlikle değiştirmeyin.
Samba NT alanına girdiğinde, kullanıcıları NT AAD ile denetleyebilir.
Bu işlemin yapılabilmesi için bir şekilde belirlenen kullanıcılara ait
NT RID'leri geçerli UNIX uid'leri ile eşlenmelidir. Bunu yapmanın iki
yolu vardır. Birisi, "username map =" parametresini kullanmaktır.
Diğeri ise tüm NT kullanıcılarının /etc/passwd dosyasında
tanımlanmasıdır. Bu taşımayı yapmak için bazı betikler (scripts)
vardır.
UNIX makinasında oluşturulan hesaplar sadece geçerli bir kullanıcı
hesap numarası (UID) elde etmek içindir. Bu yüzden bu kullanıcıları
kilitleyebilirsiniz, bunun için "*" karakteri kullanılabilir. Aşağıda
/etc/passwd dosyasındaki örnek bir satır görünüyor:
mbaser:*:1124:100:NT Geçersiz Hesap:/dev/null:/bin/False
Buraya kadar söylediklerimizi yapabildiyseniz, Samba sunucusu
tarafında kullanıma sunulan paylaşımlara geçerli bir alan hesabı
kullanarak bağlantı kurabilirsiniz. Daha detaylı bilgi için sayfa
113'daki "Samba 2.0 ile NT Alanınına Katılmak" başlıklı konuya göz
atın.

© Mustafa Başer & Görkem Çetin - 2007 127


12. Ağ Girişleri ve Gezici Profiller

12. Ağ Girişleri ve Gezici Profiller

A ğ taramasında alan ve çalışma grubu tamamen aynı


kavramları ifade eder. Tek farkı, alanlarda ağa güvenli bir
erişim sağlamak için o alana ait denetimlerin yapıldığı bir veri
tabanının olmasıdır. Alana güvenli giriş yapan kullanıcıların
kaynaklara erişim hakları farklı olabilir. (Samba şimdilik bunu
desteklemiyor, Windows NT Server veya NT tabanlı diğer sunucularla
yapılabilir).
Alana giriş yapacak bir SMB istemcisinin, alandaki diğer
sunucuların hepsinin bu girişi onaylamayı kabul ettikleri beklentisi
vardır. Bunun dışında tarama ile ilgili sayfa 139'daki "Samba'da
Tarama" konusunda anlatılan tüm yöntemler geçerlidir.
Bu bölümde "tek girişli ağ modeli" üzerinde duracağız. Samba, alan
girişlerini, giriş betiklerini ve kullanıcı profillerini desteklemektedir.
Bu destekler hala deneme aşamasındadır, fakat çalışır görünüyor.
Bu desteklerin tamamlanmamış olduğunuda belirtmek gerek. Samba
şimdilik Windows NT tarzı SAM veritabanının paylaşımını
desteklemiyor. Bu aslında paylaştırılmış veritabnı elde etmenin tek
yolu değildir. UNIX'te aynı etkiyi dağıtılmış NIS veritabanı yolu ile
yapılabililiyor.
Bir SMB istemcisi alana giriş yapmak istediğinde, bu isteğini giriş
sunucusuna duyurur. ılk yapılacak iş bu isteği almak ve Samba
yöneticisinin kurduğu şekilde kullanıcı ismi ve parolasının
doğrulamaktır. Biraz aptalca olsa bile, kullanıcılara ait
veritabanlarının sunucular arasında paylaştırılmadığı bir sistem
tasarlanabilir. Bu tür sistemlerde, kullanıcılara ait her türlü denetim
işlevini görecek sunucu başında yapılır.
Çok kullanılan diğer bir yöntem ise, "tek girişli alanlarda" SMB
protokolünü kullanarak uzaktan yönetimdir. Bu şu anda Windows
NT Server tarafından desteklenmektedir, ve yukarıda bahsettiğimiz
gibi Samba Windows NT SAM modelini uygulamadığından şimdilik
Samba'de böyle bir destek yoktur. Samba'nın ileriki sürümlerde bu
desteğin olacağı muhakkaktır.
© Mustafa Başer & Görkem Çetin - 2007 129
12. Ağ Girişleri ve Gezici Profiller

Alan desteği, DOS, ÇGW (win3.11), win95 istemcileri ile NT 4.0 ve


NT3.51 için çalışmaktadır. Samba'nın ilk sürümlerinde NT 4.0 ve
3.51 için böyle bir destek yoktur. Windows OS/2 istemcileri için
deneme aşamasında olsa bile çalışmaktadır.
Profil desteği Win95, NT 4.0 ve NT 3.51 için çalışmaktadır. şu anda
SAMBA'da, profillerin yerini belirtme, alana giren istemciler için giriş
betiklerini indirme, kullanıcıların ev dizinini atama ve hatta NT'leri
ağdan atma zamanı desteği vardır. Samba şimdi bir nokataya kadar
(örenğin, Samba tarafından oluşturulan alanlarda "User Manager for
Domains" çalışmıyor) NT tarafından sğlanan giriş hizmetlerini
yapabilmektedir.
Windows 95 ve NT kullanıcı profilleri Samba sunucusu üzerinde
saklanabilmekte ve kullanıcılar hangi makinadan alana girerlerse
girsinler o makinaya kendilerine ait profiller indirilmektedir.
Bu özellikleri kullanrak, Samba ile alana giren kullanıcıların
kimliklerini denetleyebilir, giriş yapan kullanıcılar için bir giriş betiği
çalıştırabilir ve kullanıcıların seçimlerini (masa üstü, başlat menusü
..) giriş yapılan makinaya indirebilirsiniz.

Alan Girişleri
Alan girişleri ve profilleri kullanmak için aşağıdakilerini yapmalısınız:
1) nmbd ve smbd'yi kurun. smb.conf dosysını Samba'yı ana tarayıcı
olacak şekilde yapılandırın. Bununla ilgili yapılandırmalar için
"SAMBA'nın Kurulumu" (sayfa 15) ve "Samba'da Tarama" (sayfa 139)
konularına bakınız.
2) WINS suncusunu kurunuz (detaylı bilgi için sayfa 145'e bakınız)
ve bütün istemcilerinizi WINS'i kullanması için yapılandırınız.
3) smb.conf dosyasında [netlogon] paylaşımı yaratınız. Bu paylaşım
bütün kullanıcılar tarafından okunabilmeli ancak kesinlikle
yazılamamalıdır. Bu paylaşım sizin giriş betiklerinizi ve CONFIG.POL
dosyanızı saklayacağınız yerdir. CONFIG.POL dosyası ile ilgili detaylı
bilgiler için Microsoft dökümanlarına göz atın. Bu dosyanın yapısı
hakkında hiçbir bilgi yoktur, bu yüzden bu dosyayı yapılandırırken
Microsoft araçlarını kullanmalısınız.
Aşğıda bu dediklerimizi yapacak bir örnek görüyorsunuz:
[netlogon]
path = /home/samba/netlogon
writeable = no
guest ok = no
Unutmayın bu paylaşım sıradan kullanıcılar için yazılabilir
olmamalıdır. Sıradan kullanıcıların bu dizine birşey yazmaması ve

130 © Mustafa Başer & Görkem Çetin - 2007


Alan Girişleri

dosyalar üzerinde değişiklik yapmaması gerekiyor (ağ güvenliğiniz


için.)
4) smb.conf dosyasındaki [global] tanımlarında aşağıdakilerini
yapınız:
domain logons = yes
logon script = %U.bat
Batch dosyası elbette sizin seçiminize bağlı. Yukarıdaki
yapılandırmada her kullanıcı için ayrı bir batch dosyası verir. %U
değişkeni hangi kullanıcı giriş yapacaksa onun kullanıcı ismine
dönüşür. Örneğin mbaser kullanıcısı alana giriş yaptığında sunucu
mbaser.bat dosyasını gönderir. Diğer % makroları da kullanılabilir,
örenğin
logon script = scripts\%U.bat
Eğer bütün kullanıcılar için ortak bir giriş betiği çalıştırmak
istiyorsanız:
logon script = herkes.bat
şekilnde bir yapılandırmaya gidebilirdiniz. Bu durumda, "path"
değişkenine atadığınız dizine (bizim örneğimizde bu dizin
/home/Samba/netlogon) herkes.bat adlı bir dosya yerleştirmelisiniz.
5) Kullanıcı giriş yaptığında çalıştırılabilmesi için bir batch dosyası
oluşturunuz. Eğer bir batch dosyası yoksa hiçbirşey
çalıştırılmayacaktır.
Batch dosyalarınızı oluştururken DOS tarzı dosyalara ihtiyacınız
vardır, bu tip dosyalarda satırların sonunda hem satır sonu işareti
hemde "enter" işaterti vardır. UNIX dosyalarında ise sadece satır
sonu işareti vardır. Eğer UNIX'te DOS tipi dosyaların nasıl
oluşturulduğunu bilmiyorsanız, bir DOS yazıcısı (edit, notepad gibi)
kullanarak bu dosyaları oluşturunuz.
6) smbclient programını -U seçeneği ile çalıştırarak kullanıcılar için
\\sunucu\NETLOGON paylaşımının varlığından ve okunabilir
olduğundan emin olunuz.
7) Büyük bir ihtimalle istemcilerinizin sunucuya girdiğinde
\\sunucu\NETLOGON paylaşımını otomatik olarak Z: diski olarak
bindirdiğini (mount) göreceksiniz. Buraya bazı istediğiniz gerekli
programları koyarak batch dosyasından çalıştırılmasını
sağlayabilirsiniz.

Örnek bir Giriş Betiği


Tüm kullanıcıların mbaser makinasının kontrol ettiği SAMBA
alanında her oturum açışında ev dizininini H: diski, programlar
dizinini K: diski, ve çıktılarını /etc/printcap dosyasında tanımlı

© Mustafa Başer & Görkem Çetin - 2007 131


12. Ağ Girişleri ve Gezici Profiller

HPLJ5L yazıcısına göndermesi ([global] bölümünde "load printers =


yes" kullanmalısınız) için;
1. [netlogon] bölümünde "logon script = herkes.bat" tanımlamasını
yapın,
2. Aşağıdaki satırları herkes.bat dosyası içerisine yazın ve [netlogon]
bölümünde tanımladığınız (yukarıda bir /home/samba/netlogon
demiştik) dizinine yerleştirin:
net use l: \\mbaser\homes
net use k: \\mbaser\programlar
net use lpt: \\mbaser\hplj5l
NOT: Girişlerin sağlıklı bir şekilde yapılabilmesi için "security = user"
veya "security = server" kullanıyor olmalısınız "security = share"
doğru olarak çalışmaz.

Gezici Kullanıcı Profillerini Kurmak


smb.conf dosyasındaki [global] tanımlarında aşağıdaki
yapılandırmayı yapmalısınız
logon path =
\\profil_sunucusu\profil_payalşımı\profil_dizini\%U\diğer_
dizinler
Yukarıdaki yapılandırmanın tek satırda olması gerektiğini
unutmayın. Bu seçeneğin öntanımlı değeri \\%N\%U\profile dir,
örneğin
\\Samba_sunucusu\kullanici\profil
\\N%\%U hizmeti otomatik olarak [homes] hizmeti tarafından
oluşturulur.
Samba sunucunuzu kullanıcı profilleri için kullanıyorsanız,
profillerin saklandığı dizini mutlaka taranabilir (browseable)
yapmalısınız. Windows 95, direk olarak bağlanmak yerine, giriş
dizinine ve alt dizinlerine bakarak oradaki prifilleri indirir ve sizin
için gerekli alt dizinleri oluşturmaya çalışır. Eğer gerekli alt dizinler
görülmez ise veya yaratılmaları başarılamazsa, profil oluşturulması
ve okunması durdurulur.
Profillerin saklanacağı yeri [homes] paylaşımı yapmamalısınız, daha
önce de beliritldiği gibi, bir kullanıcı alandan çıktığında [homes]
paylaşımına yapılan bağlantı hemen kopmaz.

Windows 95 ve 98
(Bu bölümde anlatacağımız windows 95 yapılandırmaları ile Windows
98 yapılandırmaları aynıdır)

132 © Mustafa Başer & Görkem Çetin - 2007


Gezici Kullanıcı Profillerini Kurmak

1) Bir kullanıcı Windows 95'e ilk giriş yaptığında Start Menu,


Desktop, Programs ve Nethood dizinlerinin oluşturulduğu gibi
user.DAT dosyasıda yaratılır. Bu dizinler ve içeriklerinin yerel
sürümleri c:\windows\profiles\username dizinindedir. Kullanıcının
bir sonraki girişinde en son oluşturulan alınır. Profil dizinlerinde
kullanılan kısa yollardaki büyük harflerin korunabilmesi için [global]
tanımlarında "preserve case = yes", "short case preserve = yes" ve
"case sensitive = no" seçeneklerini kullanmalısınız.
user.DAT dosyası kullanıcının tüm tercihlerini içerir. Eğer
kullanıcıların kendi tercihleri yerine sizin oluşturacağınız bir yapıyı
kullanmalarını istiyorsanız önce ayarlamalarınızı yapınız, yaratılan
user.DAT dosyasının adını user.MAN olarak değiştiriniz ve bu
dosyayı yazmaya karşı koruyun.
2) Windows 98 makinasında Control Panel  Passwords  User
Profiles yolunu izleyin. Burada "Users can customize their
preferences .." seçeneğini seçin. "Ok" düğmesine tıklayın, fakat
sistemin yeniden başlamasına izin vermeyin. şekil-12.1'de Bu
şekilde yapılandırılmış bir Windows 98 görüyorsunuz.
3) Wındows 95 makinasında Cotrol Panel  Network  Client for
Microsoft Networks  Preferences yolunu izleyiniz. 'Log on to NT
Domain" seçeneğini seçiniz. "Primary Logon"un 'Client for Microsoft
Networks' olduğundan emin olunuz. "Domain" kutucuğuna giriş
yapacağınız alanın adını yazınız. Aşağıda PENGUEN alanına giriş
yapacak Windows 95 makinasının yapılandırılması görünüyor. şimdi
makinanızı yeniden başlatabilirsiniz.
Windows 95 altında, kullanıcı profilleri ile giriş betikleri, "Primary
Logon" seçeneğinden indirilir. Eğer bu seçenek 'Client for Novell
Networks' yapılmış ise Novell NetWare sunucusundan indirilecek,
Micrsoft ağlarına giriş yapılsa bile, alan denetçisindeki giriş betikleri
ve profillere dokunulmayacaktır. Eğer bunu 'Windows Logon' yapmış
iseniz, yerel makinadaki profil kullanılacaktır.
Makinanız yeniden başladığında, giriş panelinde 'user, password' ve
domain (şekil-12.2) kutucuklarını göreceksiniz. Kullanıcı adınızı,
şifrenizi ve giriş yapacağınız alanın adını yazdıktan sonra Ok
düğmesine basınız.

© Mustafa Başer & Görkem Çetin - 2007 133


12. Ağ Girişleri ve Gezici Profiller

Şekil- 12.1: "Users can customize ...." se.eneği seçildiğinde, kullanıcıların kendilerine ait
profilleri olacaktır.

Kullanıcının kimliği onalyalnır onalyanmaz, Windows 95 makinası


sizin daha önce giriş yapmadığınızı 'The user has not logged on
before' bildirisi ile uyarır ve kullanıcı tercihlerinizin kaydedilip
edilmeyeceğini sorar. Bu soruya "yes" seçiniz.

Şekil- 12.2: Kullanıcı penguen alanına girdiğinde, kendisine ait profil Samba'dan alınacaktır.

134 © Mustafa Başer & Görkem Çetin - 2007


Gezici Kullanıcı Profillerini Kurmak

Windows 95 istemcisi bir masa üstü ile geldiği zaman "logon path"
seçeneğinde tanımlanan dizinin içeriğini inceleyebilirsiniz. Samba
sunucunuzda Desktop, Start Menu, Programs ve Nethood dizinlerinin
oluşturulduğunu denetleyin.
Bu dizinler istemci makina üzerinde kütüklenecek, kullanıcı çıkış
yaptığında sunucudakiler güncellenecektir (eğer salt-okunur
yapamdı iseniz). Kullanıcı bu şekilde sunucu üzerinde tercihlerini
oluşturup, bir sonraki giriş yaptığında sunucu üzerindeki tercihleri
yerel makinaya indirilecek ve en güncel olanı alınacaktır.
Samba üzerinceki dosya ve dizinleri salt-okunur yaptı iseniz,
Windows 95 makinası giriş ve çıkışlarda bir hata mesajı verecektir.
Böyle bir mesajla uyarılacak olursanız, UNIX makinasındaki ilgili
dizin ve dosyaların kullanıcı haklarına bakınız.
Eğer kullanıcı profillerini oluşturmada bir sorunla karşılaşırsanız,
kullanıcının yerel masaüstü kütüğünü sıfırlayabilirsiniz. Bunu
yaptığınız kullanıcılar, Windows 95 makinasına giriş yaptıklarında
ilk kez girdikleri uyarısında bulunulurlar.
•Windows 95 başladığında giriş panelinde kullanıcı, parolası
ve alanı kutucuklarını doldurmak yerine "escape" ile kaçın.
•regedit.exe programını çalıştırınız ve aşağıdaki değere
bakın:
HKEY_LOCAL_MACHINE\Windows\CurrentVersion\ProfileList
ParfilePath'da her kullanıcı için bir değer göreceksiniz. ıstediğiniz
kullanıcıların ProfilePath anahtarını silin ve programdan çıkın.
Uyarı: ProfilePath (c:\windows\profiles\kullanıcı benzeri bir değer)
listesinden bir içerik silmeden önce, kullanıcıya masaüstü veya
başlangıç manülerinde önemli birşeylerinin olup olmadığını sorun.
Daha sonra ProfilePath dizini ve içeriğini siliniz. Her zaman bir
yedeğini almakta fayda vardır.
•C:\Windows dizininde kullanıcıya ait kullanıcı.PWL
dosyasını bulup silin.
•Windows 95'ten çıkın.
•Samba sunucusundaki "logon path" dizininde bulunan
kullanıcı.DAT veya kullanıcı.MAN dosyasını siliniz. Her
ihtimale karşı bir yedeğini alın.
Bütün bunlar bir işe yaramaz ise Samba'nın kayıtlardaki hata
ayıklama seviyesini 3 ile 10 arasında bir değere yükseltin ve/veya
olup bitenleri izlemek için tcpdump veya netmon.exe programını
çalıştırıp hata olup olmadığını denetleyin.

© Mustafa Başer & Görkem Çetin - 2007 135


12. Ağ Girişleri ve Gezici Profiller

Windows NT Workstation 4.0


Bir kullanıcı Windows NT Workstation makinasına ilk girdigiğnde,
profil dosyası olan NTuser.DAT oluşturulur. Windows 95 için
açıkladığımız gibi, profil'in saklanacağı yer "logon path" parametresi
ile belirtilebilir.
NT profilleri için kullanılabilecek bir parametreye sahibiz: "logon
drive". Bu "h:" veya başka bir diske eşlenmelidir ve mutlaka "logon
home" parametresine atanan değer ile aynı olmalaıdır.
NT profillerinin içerikleri bir dosya yerine bir dizinde saklanır. NT'nin
yardım dosyalarından edinilen bilgilere göre .PDS uzantılı bir diğer
dizin daha oluşturulur. Kullanıcı giriş yaparken tüm profil dizinini
oluşturabilecek haklara sahip olmalıdır (ve .PDS uzantılı bir de
dizin).
profile dizinine NT, Windows 95'e göre daha fazla dizin açar. Desktop,
Nethood, Start Menu ve Programs dizinlerinin yanı sıra Application
Data da açılır. Bunların hiçbirisinin .PDS dizininde saklanmadığı
görünüyor ve amaçlarının ne olduğu konusunda da hiçbir bilgi yok.
"Control Panel"i kullanarak yerel profilin Samba sunucusuna
kopyalanmasını sağlayabilirsiniz. Bunu nasıl yapacağınızı NT yardım
dosyalarından öğrenebilrsiniz. NT yardım dosyalarında aynı
zamanda Ntuser.Dat dosyasının Ntuser.MAN olarak nasıl
kopyalanacağıda açıklanıyor.
Uyarı: Eğer Samba'nızı yapılandırırken "security = user" ve "encrypt
passwords = yes" şekilnde yapılandırmamışsanız, NT Samba
sunucusundan profilleri indirmeyecektir.

Windows NT Server
Windows NT Sever de profillerin saklanacağı dizini belirtmenizi
engelleyecek hiçbirşey yoktur. şifrelenmiş edilmiş bir SMB
sunucunuz olduğu takdirde (Samba böyledir) bunu yapabilirsiniz.
Profillerin Windows95 ve NT Workstation'larla paylaşılması
"NT User Manager" ile kullanıcıları açarken (veya daha önce açtığınız
kullanıcıları yeniden düzenlerken) eğer "logon path" parametresine
\\Samba_sunucusu\kullanıcı şeklinde bir ifade yazarsanız, kullanıcı
giriş yaptığında, NT \\Samba_sunucusu\kullanıcı.PDS dosyası
oluşturmaya çalışacak ve tabii ki beceremeyecektir. Bu yüzden
"logon path" parametresinin değerini atarken
\\Samba_sunucusu\kullanıcı\profile şeklinde bir yapılandırmaya
gitmelisiniz. Böylelikle
\\Samba_sunucusu\kullanıcı\profile\kullanıcı.PDS dosyası
rahatlıkla oluşturulabilecektir.

136 © Mustafa Başer & Görkem Çetin - 2007


Gezici Kullanıcı Profillerini Kurmak

Aynı başlangıç menüsünü ve masaüstünüzü hem Windows 95


hemde NT'lerle kullanmak istiyorsanız, "logon path =
\\Samba_sunucusu\kullanıcı\profile" tanımlamasını yapmanız
gerekmektedir.
Eğer doğru bir yapılandırma yapmış iseniz, aynı profil dizini
içerisinde user.DAT ve Ntuser.DAT dosyalarını bulacaksınız.

© Mustafa Başer & Görkem Çetin - 2007 137


13. Samba'da Tarama

13. Samba'da Tarama

ı leri tarama için Samba'yı nasıl yapılandıracağınızı bu bölümde


açıklayacağız. Yapılandırmalarınızı yapmadan önce smb.conf
dosyasının oluşturulması hakkında yeteri kadar bilgiye sahip
olmalısınız.

Genel Bakış
SMB ağ yapısı içerisinde istemci makinaların, ağda erişilebilir
makinaların bir listesini elde etme özelliği vardır. Bu listeye "tarama
listesi" denir ve bütün SMB istemcileri tarafından sıkça kullanılır.
Burada anlatılanları yapmadığınız sürece, "tarama listesinin" doğru
bir şekilde elde edilmesi sorunlu olacaktır. Tarama listesindeki
sunucu ve makinların zaman zaman kaybolmasını engellemek için
burada yapacağımız açıklamaları mutlaka uygulayın.

Tarama
Samba şimdi taramaya tam destek vermektedir. Tarama nmbd
sunucusu tarafından yapılmakta ve smb.conf dosyasındaki bazı
seçeneklerle denetlenmektedir.
Samba çalışma grubu için yerel ana tarayıcı (local master browser)
olarak davranabildiği gibi alana giriş kontrolü yapabilmekte ve giriş
betiklerini istemcilere gönderebilmektedir. Bunun için kitap
içerisindeki ilgili yeri okumanız gerekmektedir.
Samba'nın aynı zamanda bir çalışma gurubunda alan tarayıcısı olma
yeteneği de vardır. Bunun anlamı, yerel ana tarayıcılardan listeleri
toplayıp, genel ağ içerisindeki sunucu listelerine eklemesidir. Yani A
alanı içerisindeki bir istemciye B alanı içerisindeki erişilebilir
makinaların listesinin sunabilmesidir. Bu liste içerisindeki makina

© Mustafa Başer & Görkem Çetin - 2007 139


13. Samba'da Tarama

isimlerinin çözünülebilmesi için, hem SAMBA'nın, hem de diğer


istemcilerin WINS sunucusunu kullanması tavsiye edilmektedir.
Samba'yı NT alanı ile aynı çalışma grubu içerisinde ana tarayıcı
olarak yapılandırmamalısınız. Genel anlamda ağınızda her alan için
sadece bir ana alan tarayıcısı bulundurmanız gerekir, bunun Samba
veya NT olması birşeyi değiştirmez.
nmbd sunucusunun WINS sunucusu olarak yapılandırılabileceğini
hatırınızdan çıkarmayın, fakat Samba'yı mutlaka WINS sunucusu
olarak kullanmak zorunda değilsiniz. Aynı alan içerisinde bu işi
yapması için NT'yi görevlendirebilirsiniz. NT ve Samba'yı aynı alan
içerisinde kullandığınız zaman, WINS sunucusu olarak NT'yi
yapılandırmanız tavsiye edilmektedir. Alanınızda sadece Samba
bulunuyorsa sadece bir nmbd sunucusunu WINS olarak
kullanmalısınız
Taramanın tutarlı bir şekilde yapılabilmesi için Samba'nın
denetlediği çalışma grubunda nmbd'ye çoğu zaman ihtiyacınız
olacaktır. Bu yapılandırmayı smb.conf dosyasından yapmalısınız.
Samba aynı zamanda başka bir alt-ağdaki çalışma grubu için de
tarama listesi sunabilmektedir. Bu durumun sadece olağan dışı
durumlarda kullanılması tavsiye ediliyor. Örneğin internet üzerinde
tarama liste sunulması gibi. Bu konuya smb.conf dosyası ile ilgili
ayrıntılı açıklamaların yapıldığı sayfa 32'deki, "uzaktan duyurum"
kısmına bakınız.
Eğer herhangi birşey yolunda gitmez ise, sorununuzu çözebilmemiz
için log.nmb dosyası imdadımıza yetişmektedir. Sorunu bulabilmeniz
için bu dosyayı dikkatlice incelemelisiniz.
Eğer hala bir derdiniz var ise, komut satırına çıkıp \\SERVER
yazmalısınız. Bu size, erişilebilir paylaşımların bir listesini verecektir.
Bazı kullanıcılar taramanın kendileri için sorunlu olduğunu
bulacaklardır. Çünkü bunlar küresel bir "misafir hesabı"nı geçerli bir
hesap ile eşlememişlerdir. Unutmayın, IPC$ bağlantısı, paylaşımların
listesini "misafir hesap" ile yapmaktadır, bu yüzden mutlaka geçerli
bir "misafir hesabınız" (guest account) olmalıdır.
Bunlara ek olarak, birçok kullanıcı nmbd sunucusunun önünde
birçok parametreyi görmekten bıkmıştır. Bu sorun parametrelerin
arasına boşluklar konulararak çözülebilir. Örneğin -2 d yerine -2d
yazılabilir, ve -B ile -N seçeneğini kullanmayınız, zaten nmbd
sunucusunun yeni sürümleri duyuru (broadcast) ve ağ (network)
adreslerini kendisi bulabilmekdeir.
Diğer bir büyük sorun ise smb.conf yapılandırma dosyası içerisindeki
"interfaces" bölümünde, yanlış IP, ağ maskesi (netmask) veya duyuru
adresinin yazılmasından kaynaklanmaktadır.

140 © Mustafa Başer & Görkem Çetin - 2007


Alt Ağlarda Tarama

Alt Ağlarda Tarama


Samba'nın 1.9.17 sürümlerinden itibaren, alt ağlar arası tarama
listesinin bir taklitinin çıkartılmasına olanak tanınmıştır. Bu işi
yapabilmesi için, yeni kod ve seçenekler eklenmiştir. Bu bölümde bu
şekilde alt ağlar arasında tarama yapabilmenize olanak sağlayacak
yapılandırmayı anlatacağız.
TCP/IP alt ağları arasında tarama listesini görebilmek için (ağlar,
aralarındaki broadcast trafiğinin geçişini engelleyecek yönlendiriciler
ile birbirinden ayrılmış), en azından bir WINS sunucusu kurmak
zorundasınız. WINS suncusu NetBIOS isimleri için DNS sunucusu
gibi çalışmaktadır. WINS sunucuları; bir istekte bulunulduğunda, IP
adresi ile NetBIOS ismini eşlemektedirler (isim çözünürlüğü). Bu
işlem 137. porttan WINS sunucusu çalışan makinaya doğrudan UDP
paketi gönderilerek yapılır. Bir istekte bulunulduğunda, ağdaki
bütün makinaların IP adresleri NetBIOS isimleri ile eşlenerek bir
tarama listesi yayınlanır. Bunun anlanmı, bir alt ağdaki bir makina,
WINS sunucusu olmadan diğer alt ağdaki makinaların IP adresleri
ile NetBIOS adreslerini çözümleyemez.
Alt ağlar arası tarama listesinin doğru bir şekilde çalışabilmesi için,
bütün makinaların Windows 9x veya Windows NT olması, SAMBA
suncusunda WINS makinasının IP adresinin belirtilmesi, ve IP
adreslerinin bir DHCP sunucu ile dağıtılması gerekmektedir.
Windows9x/NT lerde bu işlem TCP/IP özelliklerinden ayarlanabilir,
Samba için ise bu işlem smb.conf dosyasından yapılır.

Alt Ağlar Arası Tarama Nasıl Çalışır?


Birçok hareket eden parçayı içeren, ağ ağlar arası tarama oldukça
karmaşık bir yapıya sahiptir. Bunun başarılması için Microsoft
birçok yılını harcamış ve Samba bu konuyu biraz geriden takip
etmiştir. 1.9.17 sürümü ile birlikte, bu destek sağlanmış ve eğer
doğru bir şekilde yapılandırılırsa Samba alt ağlar arasında taramada
oldukça başarılıdır.
Şekil 13.1'deki gibi sanal bir ağ düşünün

© Mustafa Başer & Görkem Çetin - 2007 141


13. Samba'da Tarama

(AAT)
N1_A N1_B N1_C N1_D N1_E
1. alt að

R1 1. yönlendirici R2 2. yönlendirici

2. alt að 3. alt að

N2_A N2_B N2_C N3_A N3_B N3_C


WINS
(AAT
N1_A N1_B )N1_C N1_D N1_E
1. alt ağ

R1 1. yönlendirici R2 2. yönlendirici

2. alt ağ 3. alt

N2_A N2_B N2_C N3_A N3_B N3_C
WINS
Şekil 13.1: Sanal bir ağ yapısı
Üç (1,2,3) alt ağdan oluşan bu sistem iki yönlendirici (R1, R2) ile
birbirlerine bağlanmışlardır. Bu yönlendiriciler, her alt ağdaki
makinalar tarafından kendileri ile ilgili yaydıkları bilgileri diğer alt
ağlara geçirmiyorlar. 1. alt ağ beş makinadan diğer alt ağlar ise üçer
makinadan oluşmuştur. Bu sistemdeki her makinanın aynı grup
altında toplanacak şekilde yapılandırıldığını düşünelim. N1_C
makinası ana alan tarayıcısı (AAT) olarak yapılandırılsın (yani
çalışma grubundaki tüm sunucuların listesini toplayacaktır). N2_C
makinasının WINS sunucusu olarak yapılandırıldığını varsayalım ve
diğer tüm makinalar kendi NetBIOS isimleri ile kayıtlı olsunlar.
Tüm makinalar çalşıtırıldığında, her alt ağda yerel ana tarayıcı (YAT)
seçimi yapılacaktır. 1. alt ağda N1_C makinasının yerel alan
tarayıcısı olarak seçilmesi muhtemeldir, çünkü zaten AAT olarak
yapılandırılmıştır. 2. alt ağda seçimi N2_B makinasının, 3. alt ağda
ise N3_A makinasının kazandığını düşünelim.

142 © Mustafa Başer & Görkem Çetin - 2007


Alt Ağlarda Tarama

Her alt ağda, paylaşım yapmış makinalar, bu paylaşımları ile ilgili


bilgileri kendi alt ağlarında yayınlayacaklardır ve her alt ağdaki YAT
bu bilgileri toplayarak bunların kaydını tutacaktır. Bu kayıtlar ana
tarama listesinin tabanını oluşturacaktır. şimdilik bütün makinalar
bazı paylaşımları sunmuş olsun, bunun anlamı tüm makinalar
tarama listesinde görünecektir.
Her alt ağdaki YAT kendi alt ağlarındaki diğer bilgisayarlardan
yayınlanan bilgileri toplar ve kendisinin bulunduğu alt ağdaki diğer
bütün makinaların yetkili olduğuna inanır ve buna güvenir (çünkü
denetimini yapabilir). Diğer alt ağlardaki makinalar ise yetkisizdir.
Bu durumda, her alt ağdaki makina, ağ komşularına baktığında
sadece kendi alt ağında bulunan makinaları görecek, diğerlerinin
varlığından haberdar olmayacaktır. Her alt ağdaki ağ komşularının
listesi şu şekilde olacaktır:
alt ağ ana tarayıcı tarama listesi
1. alt ağ N1_C N1_A, N1_B, N1_C, N1_D, N1_E
2. alt ağ N2_B N2_A, N2_B, N2_C
3. alt ağ N3_A N3_A, N3_B, N3_C

Unutmayın, şimdilik her alt ağ birbirlerinden ayrıdılar ve bir alt


ağdaki makinalar diğer alt ağdaki makinaların varlığından
habersizdir (hepsi aynı çalışma grubu çatısı altında toplanmış olsa
bile).
şimdi 2. alt ağı inceleyelim, N2_B makinası kendi alt ağında YAT olur
olmaz kendi tarama listesini eşzamanlı yapmak için WINS sunucuna
bir istemde bulunarak kendi alt ağındaki makinaların IP ve NetBIOS
isimlerini ister, ve bundan sonra hemen kendi listesi ile AAT'deki
listeyi eşzamanlı kılmak için AAT'ye bakar. N2_B makinası adresleri
bilir bilmez, kendisinin 2. alt ağda YAT olduğunu 138. porttan UDP
paketi olarak MasterAnnouncement paketini gönderir. Bu sayede
NetServerEnum2 çağrısı ile her iki makina (AAT ve N2_B) kendi
bilgilerini diğeri ile eşzamanlı kılarlar. Her iki makinada eşzamanlı
kılma işini tamamladıktan sonra tarama listesi şu hale gelir.

alt ağ YAT tarama listesi


N1_A, N1_B, N1_C, N1_D, N1_E
1. alt ağ N1_C
N2_A(*), N2_B(*), N2_C(*)
N2_A, N2_B, N2_C
2. alt ağ N2_B
N1_A(*), N1_B(*), N1_C(*), N1_D(*), N1_E(*)
3. alt ağ N3_A N3_A, N3_B, N3_C

Sunucu adı sonlarındaki (*) işareti onların o alt ağda yetkisiz olduğunu
belirtmektedir.

© Mustafa Başer & Görkem Çetin - 2007 143


13. Samba'da Tarama

Bu noktada, 1. alt ağdaki ve 2. alt ağdaki kullanıcılar, ağ


komşularına baktıklarında, her iki ağdaki makinalarıda
göreceklerdir, fakat hala 3. alt ağdaki makinalrdan habersizdir,
oradaki makinalarda bu alt ağdakilerden.
Yukarıda anlattığımız olaylar N3_A makinası ile N1_C makinası
arasında yaşanır. şu anda tarama listemiz:
alt ağ YAT tarama listesi
N1_A, N1_B, N1_C, N1_D, N1_E
1. alt ağ N1_C N2_A(*), N2_B(*), N2_C(*)
N3_A(*), N3_B(*), N3_C(*)
N2_A, N2_B, N2_C
2. alt ağ N2_B N1_A(*), N1_B(*), N1_C(*), N1_D(*),
N1_E(*)
N3_A, N3_B, N3_C
N2_A(*), N2_B(*), N2_C(*)
3. alt ağ N3_A
N1_A(*), N1_B(*), N1_C(*), N1_D(*),
N1_E(*)

Bu noktada 1. ve 2. alt ağlardaki makinalar tüm alt ağlardaki


makinaları ağ komşularında görebildikleri halde, 2. alt ağdaki
makinalar hala 3. alt ağdaki makinalardan habersizdir.
Son olarak, eşzamanlı kılma hikayesi, N2_B ile N1_C arasında
yaşanır, ve son listemiz aşağıdaki gibi olur:
alt ağ YAT tarama listesi
N1_A, N1_B, N1_C, N1_D, N1_E
1. alt ağ N1_C N2_A(*), N2_B(*), N2_C(*)
N3_A(*), N3_B(*), N3_C(*)
N2_A, N2_B, N2_C
2. alt ağ N2_B N1_A(*), N1_B(*), N1_C(*), N1_D(*), N1_E(*)
N3_A(*), N3_B(*), N3_C(*)
N3_A, N3_B, N3_C
3. alt ağ N3_A N1_A(*), N1_B(*), N1_C(*), N1_D(*), N1_E(*)
N2_A(*), N2_B(*), N2_C(*)

Eşzamanlı kılma YAT'lar ile AAT arasında, ta ki kararlı bir liste


oluşana kadar devam eder gider. Eğer alana yeni bir makina eklenir
ise, hikayemiz baştan başlar. Ya çıkarılırsa? Bu sorunun cevabı
aşağıdaki açıklamalarda gizli.

144 © Mustafa Başer & Görkem Çetin - 2007


Alt Ağlarda Tarama

1. veya 2. yönlendirici işini yapamaz hale gelirse şunlar olur:


● 36 dakika süre ile her makina, kendi ağ komşularının tarama
listesinde diğer tüm makinaları göreceklerdir.
● Herhangi bir makinaya erişilmek istendiğinde "erişilemez" mesajı
ile karşılanılacaktır.
● Eğer WINS sunucusunun olduğu alt ağa diğerlerinden ayrılırsa
(R1 yönlendiricisi), diğer makinalar sadece kendi alt ağlarındaki
makinalara erişebileceklerdir.

WINS Sunucusunun Kurulumu


Samba makinası veya NT Server makinası WINS sunucusu olarak
yapılandırılabilir. Samba'yı WINS sunucusu olarak yapılandırmak
için smb.conf dosyası içerisine [global] tanımlarında aşağıdaki satırı
eklemelisiniz (satır var ise önündeki yorumu ";" kaldırınız):
wins support = yes
Bazı Samba sürümlerinde smb.conf dosyasında bu satır öntanımlı
olarak "yes" tir. Eğer Samba sürümünüz 1.9.17 den daha eski ise,
mutlaka bundan daha sonraki bir sürümü edinin.
"wins support = yes" yapılan bir makina, tüm makinaların
kendilerine kayıtlı NetBIOS isimlerinin bir listesini tutar (TCP/IP
ağlarındaki DNS ile aynı görevi görmek üzere).
Bir ağda sadece bir tane WINS sunucusu yapılandırmalısınız,
kesinlikle birden fazla WINS sunucusu olmamalı.
Wındows NT Server makinasını WINS sunucusu olarak
yapılandırmak için "WINS Service" kurmalısınız. Daha detaylı bilgi
için NT dökümanlarına bakınız. Windows NT WINS sunucuları,
listelerini birbirleri ile çoğaltabilirler, bu nedenle karmaşık çoklu alt
ağ sistemlerinde birden fazla NT WINS sunucusu olabilir. Samba'nın
bu çoğaltma işlemine katılmasını Microsoft engellediği için şimdilik
WINS olarak yapılandırılmış Samba bu çoğlatma işleminde başarılı
olamamaktadır. ılerde Samba WINS'ler arasında bu çoğaltma
işlemlerinin yapılabilmesi için gerekli protokollerin ekleneceği
mutlaktır ve bu sayede karmaşık ağlarda birden fazla Samba WINS
sunucusuna sahip olabileceğiz. Fakat şu anda ağınızda sadece bir
Samba sunucusunu WINS olarak yapılandırmalısınız.
WINS sunucusu yapılandırıldığında, ağınızdaki diğer tüm
makinalara WINS desteği verirken bu sunucunun adresini
göstermelisiniz. Eğer Samba sunucusu WINS olarak yapıalndırılmış
ise, bu sunucunun IP adresini Windows 9x lerde "Control Panel 
Network  Protocols  TCP  Properties WINS Server" yolu ile

© Mustafa Başer & Görkem Çetin - 2007 145


13. Samba'da Tarama

ulaşacağınız "Primary WINS Server" alanına yazmalısınız (şekil 13.2).


Eğer, IP adreslerinizi bir DHCP sunucusundan alıyorsanız, WINS
sunucusu olarak bunu kullanabilirsiniz. O zaman "Use DHCP for
WINS resolution" seçeneğini seçebilirsiniz. Bunu yaptığınızda IP
adreslerini DHCP sunucusundan alan makinalara ait listenin kararlı
olacağını hatırlatalım.

Şekil 12.2: Kararlı tarama listesine sahip olabilmek için bir WINS sunucunuz olmalı ve bunu
istemcilerde belirtmelisiniz.

Samba'ya WINS sunucusunu söylemek için smb.conf'taki [global]


anımlarında açağıdaki satırı ekleyin:
wins server = <isim veya IP adresi>
Burada <isim veya IP adresi> yerine WINS sunucusunun IP adresini
veya DNS adını yazmalısınız.
WINS olarak yapılandırılmış Samba sunucusunun smb.conf
dosyasında bu yapılandırmayı kesinlikle yapmamalısınız. Eğer bunu
yaparsanız nmbd sunucusu çalışmayacaktır.
Karmaşık alt ağlardan oluşan bir sistemde taramanın kurulumu iki
şekilde olabilir, ya bir NT alanı oluşturmadan sadece bir "Çalışma

146 © Mustafa Başer & Görkem Çetin - 2007


WINS Sunucusunun Kurulumu

Grubu" yaratırsınız, ya da bir NT alanı oluşturursunuz. şimdi sırası


ile her iki durumda taramanın nasıl yapılandırılacağına bir göz
atalım:

"Çalışma Gurubu"nda (WORKGROUP) Taramanın


Kurulumu
Makinaların aynı "Çalışma Grubu"nda (NT alanı değil) olacak
şekilde, alt ağlardan oluşan bir sistemde taramayı kurmak için bir
Samba sunucusunu AAT olarak yapılandırmalısınız. Unutmayın Ana
Alan Denetçisi (AAD) ile Ana Alan Tarayıcısı (AAT) aynı anlama
gelmiyor, halbuki Windows NT' de bir makina bu iki rölü aynı anda
üstleniyor. Aynı ağdaki bir NT yi AAT diğer bir NT'yi AAD olarak
yapılandıramazsınız. AAT'nin görevi, çalışma grubuna katılan tüm
makinaların listesini, alt ağlardaki yerel ana tarayıcı (YAT) dan
toplamaktır. Eğer AAT yapılandırmamış iseniz, alt ağlarınız
birbirinden bağımsız hale gelir ve makinalar diğer alt ağlardakilerden
haberdar olmazlar. Çalışma gruplarında AAT'ler her alt ağdaki
makinaların tüm ağdaki tüm makinaları görmesini sağlar.
Bir çalışma grubunda AAT mutlaka bir Samba sunucusu ve her alt
ağda sadece birer tane YAT bulunmalıdır. Bir Samba sunucusunu
AAT olarak yapılandırmak için smb.conf dosyasındaki [global]
tanımlarında aşağıdaki satıra sahip olmalısınız:
domain master = yes
AAT aynı zamanda kendi alt ağında da YAT olarak tercih edilmelidir.
Bunu yapmak için [global] tanımlarında aşağıdaki satırları
eklemelisiniz:
domain master = yes
local master = yes
preferred master = yes
os level = 65
Eğer ihtiyacınız var ise AAT'yi aynı zamanda WINS sunucusu olarak
ta yapılandırabilirsiniz.
Çalşıma grubundaki her alt ağda birer YAT olduğundan emin olun.
Herhangi bir NT makinası herhangi bir Windows 9x makinası (fakat
bunlar sürekli kapatılıp açıldığı için tercih edilmemeli) bunu
becerebilir. Bir Samba'yı YAT olarak kullanacaksanız, [global]
tanımlarında aşağıdaki satırları ekleyin

© Mustafa Başer & Görkem Çetin - 2007 147


13. Samba'da Tarama

domain master = no
local master = yes
preferred master = yes
os level = 65
Her alt ağda mutlaka bir Samba makiansında bunu yapmanız
gerektiğini hatırlayın. Birden fazla olur ise, makinalar kimin YAT
olacağı konusunda birbirlerini uyarırlar.
"local master" parametresi, Samba'nın YAT olarak davranmasını
sağlar. "preferred master" parametresi ise nmbd'yi başlangıçta bir
tarayıcı seçimi yapmaya zorlar ve "os level" parametresi de diğer
Samba makinalarından daha yüksek yapılarak seçimin kazanılması
sağlanır.
Eğer NT makinasını YAT olarak kullanacaksanız, Samba'yı bu
şekilde davrandırtmamak için smb.conf dosyasında [global]
tanımlarında şu şekilde bir yapılandırmaya gitmelisiniz:
domain master = no
local master = no
preferred master = no
os level = 0

Alan ıçerisinde Taramanın Kurulması


Eğer Samba sunucusunu bir Windows NT alanına ekleyecekseniz,
Samba'yı kesinlikle AAT yapmamalısınız. Öntanımlı olarak, AAD
(Ana Alan Denetçisi) olan Windows NT aynı zamanda o alan
içerisinde AAT olur. Böyle bir alanda Samba suncuusunu WINS ile
birlkte AAT yapacak olursanız, birçok şeyin yolunda gitmediğine
tanık olursunuz.
Ana Alan Denetçiliği yapan Windows NT makinanın bulunmadığı
diğer alt ağlarda, Samba'yı elbetteki YAT olarak yapılandırabilirsiniz.
Bir alt ağda Samba sunucusunu YAT olarak yapılandırmak için
smb.conf dosyası içerisindeki [global] tanımlarında aşağıdaki gibi
satırlara ihtiyacınız olacak
domain master = no
local master = yes
preferred master = yes
os level = 65
Eğer Samba sunucusunun YAT seçiminde savaşa katılmasını
istiyorsanız "os level" parametresini daha düşük bir sayıya
eşleyebilirsiniz. Bunu yapmakla, alt ağdaki hangi makinanın YAT
olması gerektiğini ayarlamış olursunuz. Bu konu ile ilgili daha geniş
bilgiyi aşağıdaki "Samba Sunucusunu Ana Tarayıcı Olmaya
Zorlamak" başlıklı konuya bakınız.
Eğer aynı alana içersinideki alt ağlarda birçok Windows NT
makinanız varsa ve Samba sunucusnun tarayıcı seçiminde yer

148 © Mustafa Başer & Görkem Çetin - 2007


Alan ıçerisinde Taramanın Kurulması

almasını istemiyorsanız, smb.conf dosyasındaki [global] tanımlarında


aşağıdaki gibi bir yapılandırmaya gidebilirsiniz:
domain master = no
local master = no
preferred master = no
os level = 0

Samba Sunucusunu Yerel Ana Tarayıcı (YAT)


Olmaya Zorlamak
Yapılan yayınlar ile oluşan "ana tarayıcı" seçimini kim kazanacak?
Bu sorunun yanıtını yapacağınız ayarlamalar ile kendiniz
verebilirsiniz. Ağda yayınlanan her paket, yayın yapan makinada
yaptığınız ayarlamalardaki bazı parametreleri içerir ve bu sayede
kimin güçlü olduğu belirlenir. Öntanımlı olarak Samba çok düşük
değerler kullanarak, herhangi bir makina gibi seçimi kaybeder.
Samba sunucusunun bu seçimi kazanmasını istiyorsanız smb.conf
dosyasındaki "os level" parametresine çok büyük bir değer
atamalısınız. Öntanımlı olarak "0" dır. Bu parametreyi 34 ile
kullanmak, ağdaki diğer makinaları (diğer Samba sunucuları hariç!)
geçmesini sağlar. NT makinaları bu parametreyi "32" olarak
kullanırken win3.11 ve win95 lerde "2" dir. Bu parametrenin en
yüksek değeri "255" dir.
Samba sunucusunun açıldığında seçimi zorlaması için smb.conf
dosyasındaki "preferred master" parametresini "yes" yapmalısınız.
Bu sayede Samba diğer makinalara göre daha büyük bir avantaj
sağlamış olursunuz. Bu parametreyi "yes" olarak yapılandırırken,
aynı alt ağdaki diğer makinalarda da (Samba veya NT) "yes"
olmadığından emin olmalısınız. Böyle bir durum var ise her seferinde
biri diğerinin önüne geçmek için zor kullanma yoluna gidecektir.
Samba'nın Ana Alan Tarayıcısı (AAT) olmasını da istiyorsanız
"domain master browser" parametresini de "yes" yapmalısınız. Eğer
böyle yapmaz iseniz, kendisine ait bilgileri yayınlarken, bu bilgiler
sadece kendi alt ağında, diğer alt ağlardan tamamen bağımsız olarak
yayınlanacaktır.
Bir alan içerisinde birden fazla Samba sunucusunu AAT olacak
şekilde de yapılandırabilirsiniz. ılk açılan Samba sunucusu AAT
olacak ve diğerleri her 5 dakikada bir AAT olmaya çalışacaktır.
Başka bir Samba sunucusunun halihazırda AAT olduğunu
görecekler ve vazgeçeceklerdir. Bu yarışmalar ta ki, AAT işlevini
yapamaz hale gelene kadar devam edip gidecektir.

© Mustafa Başer & Görkem Çetin - 2007 149


13. Samba'da Tarama

Samba Sunucusunu Ana Ana Tarayıcı (AAT) Olmaya


Zorlamak
Ana Alan Tarayıcısı, çoklu alt ağlı sistemlerde tarama listesini
toplamakla sorumludur. Bu sayede alt ağlar arası tarama mümkün
olur. Samba'nın böyle sistemlerde AAT olarak devranabilmesi için
smb.conf dosyasında, "domain master = yes" yapılandırılması
gerçekleştirilmelidir. Samba öntanımlı olarak AAT değildir. Eğer alan
bir Windows NT tarafından denetleniyorsa, ağınızdaki herhangi bir
Samba sunucusunda bu türlü bir yapılandırmaya gitmeyiniz.
Samba hem AAT hemde YAT olursa, alt ağlardaki YAT'lardan gelen
duyuruları dinleyerek (her 22 dakikada bir yayımlanır) kendi listesi
ile YAT'ların listesini eşzamanlı kılar.
Eğer Samba'yı AAT yapmak istiyorsanız, "os level" parametresini
yeterince büyük tutmalısınız ki bu sayede yapılacak seçimlerde
birinci gelsin.
Unutmayın, ağınızdaki bütün sunucu (Samba dahil) ve istemciler bir
WINS sunucusunu NetBIOs isimlerinin çözünürlüğü için
kullanmalıdır. Eğer istemci makinalar sadece yayınları dinleyerek
NetBIOS isimlerini çözmeye kalkışırlarsa, şu iki olaydan birisi (veya
her ikisi birden) olur:
a) Yerel Ana Tarayıcılar, Alan Ana Tarayıcısını bulamazlar ve sadece
yerel ağdaki makinaların listesi ile yetinirler.
b) Eğer bir şekilde istemcilerden birisi tüm ağın listesini elde ederse
(kararsız bir durumdur) ve kullanıcılardan birisi, yerel ağda
olmayan makinalardan birisine erişmeye kalkışırsa, o makinaya
ait NetBIOS ismini çözemeyecektir.
Eğer bütün makinalar bir WINS suncusunu kullanırlarsa o zaman
şunlar olur:
a) Yerel Ana Tarayıcılar WINS suncusu ile bağlantıya geçerler.
Samba WINS sunuculuğu ile birlikte Ana Alan Tarayıcısı olduğu
sürece, Yerel Ana Tarayıcılar Samba'nın IP adresini Ana Alan
Tarıyıcısı olarak algılarlar.
b) ıstemciler, tüm ağa ait listeyi edindiklerinde, kullanıcılardan birisi
kendi alt ağında olmayan bir makinaya erişmek isterlerse,
erişilmek istenen makinanın NetBIOS isim çözünürlüğnü için
istemci hemen WINS sunucusu ile bağlantıya geçer, ve bu sayde
kullanıcı makinaya erişir.

150 © Mustafa Başer & Görkem Çetin - 2007


Yayın (broadcast) Adresleri ile ılgili Birkaç Not

Yayın (broadcast) Adresleri ile ılgili Birkaç Not


Eğer ağınız "0" tabanlı yayın adresi kullanıyorsa (örneğin 0 ile
bitiyorsa), bu durumda bazı sorunlara çatabilirsiniz. Çalışma
Grupları için Windows (win3.x) 0'lı yayınları desteklemez ve büyük
bir ihtimalle tarama çalışmayacaktır, benzer şekilde isim
çözünürlüğü de...

Çoklu Arayüzler
Samba artık birden fazla ağ kartını (arayüzü) desteklemektedir. Eğer
makinanızda birden çok ağ kartı var ise smb.conf dosyasındaki
"interfaces" parametresini kullanmalısınız. Daha detaylı bilgiler için
"Samba Genel Yapılandırma Seçenekleri" bölümüne bakmalısınız
(sayfa 21).

DNS Proxy
nmbd WINS sunucusu olarak görev yaptığında, ağdaki makinaların
duyurularından aldığı bilgilerle tarama listesini oluşturur. Bazu
durumlarda kullanıcılar, ağdaki diğer makinaların NetBIOS isimleri
yerine DNS isimlerinin kullanılmasını tercih ederler. Bu durumda
Samba'nın isimleri ağ duyurularından toplaması yerine DNS
sunucusuna sorarak isim çözünürlüğünü yapabilir. Samba'yı bu
şekilde yapılandırmak istiyorsanız [global] tanımlarında;
dns proxy = yes
satırını eklemeniz gerekiyor.

© Mustafa Başer & Görkem Çetin - 2007 151


14. Şifrelenmiş Parolalar

14. Şifrelenmiş Parolalar

S amba için parolaların şifrelenmesinde LanManager ve


Windows NT uyumu eklendiğinden bu yana, kullanıcıları
onaylanması LanManager ve Windows NT ile aynı
olabilmektedir.
Bu bölümde SMB encryption yönteminin nasıl çalıştığını
açıkladıktan sonra, gerçekten böyle bir şeye gerek duyup
duymadığınız üzerinde yorumlar yapacağız. Bu bölümü, özellikle
karşılaştırmalar kısmını dikkatlice okumanızı tavsiye ediyoruz.

Nasıl Çalışıyor?
LanManager şifreleme (encrypt) yöntemi az çok UNIX'inkine
benzemektedir. Sunucu kullanıcılara ait parolaların karmaşık olarak
bulunduğu bir dosyayı kullanır. Bu dosya kullanıcının düz metinden
oluşan parolasını alıp, tümünü büyük harfe çevirdikten sonra 14
bayt olacak şekilde keser (kısa ise 14 bayta kadar boşluk ile
doldurulur). Bu 14 baytlık değer iki tane 56 bit DES anahtarı olarak
kullanılmak suretiyle sekiz baytlık "sihirli" kelime oluşturulur,
böylelikle toplam 16 bayttan oluşan parola istemci ve sunucuda
saklanır. Bu değere "şifrelenmiş parola" diyelim.
Windows NT encryption yöntemi ise biraz daha kaliteli bir
mekanizmadan oluşur. Bu mekanizma kullanıcı parolasının unicode
sürümü üzerine MD4 algoritması uygulanır. Bu da aynı şekilde 16
baytlık tersinmez bir değerdir.
Bir istemci (LanManager, Çalışma Grupları için Windows, Windows
95 veya Windows NT) Samba kaynaklarını kullanmak istediğinde,
öncelikle bir bağlantı isteminde bulunur. Bu protokol hem istemci
hem sunucu tarafından kullanılabilir olmalıdır. Bu isteme cevap
olarak, isteme rastgele seçilen 8 baytlık bir değer eklenir. Samba
sunucusunda tutulan ve toplam 24 bayttan oluşan bu değere
"değişim" denir. "değişim" her istemci için farklıdır.

© Mustafa Başer & Görkem Çetin - 2007 153


14. Şifrelenmiş Parolalar

Bundan sonra istemci, bu karmaşık parolayı kullanır. Kullanırken,


sonuna 5 boş bayt ekler, bu sayede 56 birlik DES anahtarı oluşur,
ve bunlar 8 baytlık değişimi karmaşık hale getirmek için kullanılır.
Sonuçta "tepki" adını verdiğimiz 24 baytlık bir değer oluşur.
SMB çağırımlarında SMBsessionsetupX (kullanıcı güvenlik
düzeyinde) veya SMBtconX ( güvenlik düzeyinde), bu 24 baytlık
"tepki" sunucuya gönderilir. Windows NT, protokolü düzeyinde,
yukarıda bahsettiğmiz hesaplamaların hepsi, karmaşık kullanıcı
şifreleri ve "tepkilerde" yapılır.
Samba sunucsu, kendi dosyasında sakladığı 16 bayt'lık karmaşık
parolayı kullanarak yukarıda anlattıklarımızı tekrarlar ve "değişimi"
kendisinde tutar. Bundan sonra kendisinde tutuğu "değişim" ile
istemciden gelen "tepki"nin aynı olup olmadığına bakar.
Eğer bu ikisi birbirini tutarsa, istemci doğru parolayı biliyordur ve
bağlantıya izin verilir. Tutmuyorsa, istemci doğru parolayı
bilmiyordur ve erişim reddedilir.
şunu ifade edelim ki, Samba hiçbir zaman kullanıcıya ait parolayı
düz metin olarak saklamaz (16 bayt'lık karmaşık değer saklanır) ve
ne düz metin parola veya 16 bayt'lık karmaşık parola ağ üzerinde
dolaşmaz. Bu da güvenliği artırır.

Güvenliğe Ait Birkaç Önemli Not


UNIX ve SMB şifreleme teknikleri yüzeysel olarak birbirine
benzemektedir. Biraz derine inersek benzerliğin bozulduğuna tanık
oluruz. UNIX'te kullanıcı giriş yaparken parolası ağ üzerinden düz
metin olarak sunucuya ulaşır. Bunun iyi olmadığı ortada. SMB
şifreleme yöntemide ise, düz metinden oluşan parola hiçbir zaman
ağda dolaşmaz fakat, 16 bayttan oluşan karmaşık parola istemci
makinada tutulur. Bunun da bazı sakıncaları vardır. Neden mi? 16
baytlık bu karmaşık değer bir şifreye denk gelir. Bu karmaşık
değerden kullanıcının parolasını bulmak hemen hemen imkansızdır,
fakat üzerinde oynanmış bir istemci makina bu parolayı kullanarak
sunucuya erişebilir. Tabii ki bunu yapmak her babayiğidin harcı
değildir, ancak yapılması da imkansız değildir, bir de herhangi bir
bilgiye sahip olmadan nasıl yapıldığını da bir yerlerden öğrenmek
mümkün olunaca, alın başınıza belayı. Bu yüzden, karmaşık
değerden oluşan bu dosyaları düz metin parolalar gibi
düşünebilirsiniz. Bu karmaşık değer başkalarının erişemeyeceği bir
şekilde korunmalıdır (NT Workstation'da evet, ya Windows 95 ve
Windows 98'de?).
ıdeal olarak biz, ne düz metinden oluşan parolaların ağda
dolaşmasını ne de karmaşık değerlerin istemci üzerinde tutulmasını
isteriz. Malesef, Samba'yı diğer SMB sunucu ve istemcileri (Windows

154 © Mustafa Başer & Görkem Çetin - 2007


Güvenliğe Ait Birkaç Önemli Not

NT, ÇGW, Windows9x) ile uzlaşabilir kılmak için, bu mümkün


olmamaktadır. Windows 2000 neler getirir bilemiyoruz.

Karşılaştırmalar
Her iki tekniğin de bazı getiri ve götürüleri vardır.

SMB şifreleme Tekniğinin Getirileri


• Düz metin parolalar, ağ üzerinde dolaşmaz. Ağı dinleyen casuslar
SMB sunucusuna giden bu parolayı kaydedip kullanamazlar.
• Windows NT SMB şifreleme yöntemini kullanmayan istemciler ile
konuşmazlar. Hatta, kullanıcı düzeyi güvenlik düzeyinde
yapılandırılmış bir sunucunun taranmasına bile izin verilmez. Her
seferinde kullanıcıya parola sorar, bu da çok can sıkıcıdır. Bunu
önlemenin tek yolu SMB encrpt yöntemini kullanmayı
durdurmaktır.

Düz- Metin Parola Tekniğinin Getirileri


• Düz-metin parolalar disk üzerinde tutulmaz.
• Diğer UNIX hizmetleri ile (telnet, ftp) aynı parola dosyasını
kullanır.
• Büyük bir olasılıkla, UNIX makinanıza kullanıcılar telnet veya ftp
yoluyla zaten ulaşıyorlardır, bu durumda düz-metin parolalar
zaten ağ üzerinden gönderiliyor, Samba'ya da aynı şekilde
gönderilmesi pek fazla bir sorun oluşturmaz.
Unutmayın, eğer Windows NT Service Pack 3 kullanıyorsanız,
sunucu ve istemcinin düz metin ile onaylama işlemi (öntanımlı)
kaldırılır ve hiçbir zaman böyle şifreler ağ üzerinden bir başka
sunucuya (örneğin Samba) gönderilmez. Bu sorunu ortadan
kaldırmak için ya Samba'yı karmaşık parolalar ile onaylamayı
yapacak şekilde yapılandırmalısınız veya NT'nin kayıtları ile oynayıp
tekrar düz-metin parola göndermesini sağlamalısınız.

smbpasswd Dosyası
Samba'nın yukarıda anlattığımız protokole katılabilmesi için,
kullanıcı tarafından verilen 16 baytlık şifrelenmiş parolanın yerel bir
dosyadan bakılabilmesi gerekir. Malesef, UNIX parolaların saklandığı
dosya karmaşık değerlerden oluştuğu için ve bu değerlerin

© Mustafa Başer & Görkem Çetin - 2007 155


14. Şifrelenmiş Parolalar

kullanıcıların asıl parolasını elde etmede kullanılamayışından


(çünkü tek yönlü bir şifreleme algoritması kullanılır) Samba, bu
UNIX parola dosyasından başka bir dosya kullanmak zorundadır.
Sorunları en aza indirgemek, ve halihazırdaki kullanıcı hesaplarına
ait parolaların, Samba'nın kullanabileceği smbpasswd dosyasının
oluşturalabilmesi ve bu iki dosyanın eşzamanlı tutulabilmesi için
mksmbpasswd.sh betiği sağlanmıştır.
/etc/passwd dosyasından smbpasswd'nin oluşturulması için
aşağıdaki komutu çalıştırın.
cat /etc/passwd | mksmbpasswd.sh
>/usr/local/Samba/private/smbpasswd
Eğer NIS kullanıyorsanız şu komutu çalıştırabilirsiniz
ypcat passwd | mksmbpasswd.sh
>/usr/local/Samba/private/smbpasswd
mksmbpasswd.sh programı Samba kaynak kodunda
bulunmaktadır. Öntanımlı olarak smbpasswd dosyası
/usr/local/Samba/private/smbpasswd patikasında bulunur, ancak
modern dağıtımlarda bu yol /etc/smbpasswd şeklinde
değiştirilmiştir.
/usr/local/Samba/private dizininin sahibi root olmalı ve izinleri şu
şekilde olmalıdır:
r-x------
Bunu yapmak için şu komutu çalıştırabilirsiniz:
chmod 500 /usr/local/Samba/private
Benzer şekilde private dizininin içindeki smbpasswd dosyasının
sahibi root ve izinleri şu şekilde olmalıdır:
rw-------
Bunu da
chmod 600 smbpasswd
komutunu çalıştırarak elde edebilirsiniz. Dosyadaki her satırın
içeriği şu şekilde olacaktır:
kullanıcı:uid:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX:uzun isim:ev dizini:kabuk
Samba için sadece kullanıcı, uid, ve
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX bölümleri önemli
olmasına rağmen, iki nokta üst üste (:) işaretinin her iki tarafında 32
tane X bulunmak zorundadır. Bu X bölümlerinin birincisi
LanManager şifrelenmiş parolası, ikinci kısmı ise Windows NT
sürümüdür. LanManager kullanımı çok az olduğundan, biz buna ait
şifreleme yönteminin Samba tarafından nasıl uygulanacağını
açıklamayacağız.

156 © Mustafa Başer & Görkem Çetin - 2007


smbpasswd Dosyası

Parola dosyası oluşturulduğunda, tüm kullanıcılara ait satırda 32


tane "X" bulunur. Bu herhangi bir kullanıcının sunucya erişimini
engeller. Bir kullanıcının parolası yapılandırıldığında, 32 tane
sekizlik (hexadecimal) sistemdeki (0-9, A-F) karakterden oluşur.
Bunlar, 16 baytlık karmaşık şifrenin ascii kodları ile gösterimidir.
Bir kullanıcıya parola vermek istemiyorsanız (ki önerilmez), bir metin
düzenleyici ile dosyayı açın ve, ascii metindeki ilk 11 "X" harfi yerine
NO PASSWORD
yazın. Örneğin, mbaser kullanıcsının parolasını kaldırmak için şöyle
bir satıra sahip olmalıyız:
mbaser:500:NO
PASSWORDXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXX:Mustafa Baser:/home/mbaser:/bin/bash
smbpasswd programını kullanarak, kullanıcıların kendi parolalarını
girmelerini istiyorsanız, kullanıcılara NO PASSWORD vererek
sunucuya ilk kez sorgusuz sualsiz bağlanmasını sağlayabilirsiniz
(önerilmez). smbpasswd programı smbd sunucusuna o kullanıcı
adına boş parola (unutmayın, şifrsiz ve boş parola birbirinden
farklıdır, parolasız "NO PASSWORD" kullanırken, boş parolada
sadece "X" harfleri bulunur) ile bağlantı kurabilir. Bunu için
smb.conf dosyasının [global] bölümünde:
null passwords = Yes
satırını kullanın (bundan dolayı yukarıdakini önermiyoruz).
Not: Bu dosyaya diğer kullanıcıların erişmesine izin vermeyiniz.
Herhangi birisi bu dosyayı ele geçirirse ve kullanılan protokollerde
yeteri kadar bilgisi var ise, SMB sunucunuza erişebilir. Bu yüzden
bu dosya /etc/passwd (gölge parola kullanıyorsanız, /etc/shadow)
dosyasının korunmasından daha da önemlidir.

smbpasswd Komutu
smbpasswd komutu smbpasswd dosyasında 32 baytlık bir parola
alanını destekler. Eğer bunu UNIX passwd veya yppasswd programı
ile benzer olmasını istiyorsanız, komutu /usr/local/Samba/bin
dizinine yerleştiriniz (veya sizin ana Samba çalıştırılabilir dizinine).
Unutmayın, Samba'nın 1.9.18p4 sürümünden itibaren bu program
"setuid root" olarak kurulmamalıdır. Bunun doğurduğu bazı
sakıncalarından dolayı Samba kodu bu şekilde çalıştırılması (kaza ile
bile olsa) önlenecek şekilde düzenlenmiştir.
smbpasswd şimdi istemci-sunucu modelinde çalışır; yerel smbd
sunucusuna kullanıcının parolasını değiştirmek üzere bağlantı

© Mustafa Başer & Görkem Çetin - 2007 157


14. Şifrelenmiş Parolalar

kurar ve şifrenin değiştirilme işi smbd tarafından yapılır. Bunun iki


faydası vardır:
1. smbpasswd artık "setuid root" olmak zorunda değildir. Bu olası
güvenlik sorunlarını önler.
2. smbpasswd artık Windows NT sunucularındaki şifreleri
değiştirebilecek yeteneğe sahiptir. Bunun yapılabilmesi için,
isteğin Ana Alan Denetçisi olan Windows NT sunucuya
gönderilmesi gerekir, çünkü alan parolasının değiştirilmesi söz
konusu.
smbpasswd'yi normal bir kullanıcı olarak çalıştırmak için
smbpasswd
Old SMB password: <eski parolanızı (şu andaki) yazın>
New SMB Password: <yeni parolanızı yazın>
Repeat New SMB Password: <yeni parolanızı tekrar yazın>
Eski parola smbd sunucusundakini tutarsa, iki defa yazılan
parolalar da eşlenik ise, kullanıcının parolası değiştirilir. Diğer
durumlarda değiştirme işlemi reddedilir. Bu komut normal bir
kulanıcı tarafından çalıştırılırsa, sadece kendisine ait parola
değiştirilir. root ise tüm kullanıcıların parolasını değiştirme yetkisine
sahiptir, bunun için root olarak aşağıdaki komutu çalıştırın:
smbpasswd <kullanıcı>
New SMB Password: <kullancının yeni parolası>
Retype New SMB Password: <yeni parolayı tekrar yazın>
smbpasswd programı UNIX kullanıcılarının alışık olduğu passwd
veya yppasswd ile benzer şekilde tasarlanmıştır.
Bu komut çalıştırılıp bir parola atandıktan sonra mbaser
kullanıcısına ait satır şu şekilde olacaktır:
mbaser:500:C187B8085FE1D9DFAAD3B435B51404EE:A9F0DD57E1EDAB
5BB55A9AC0A99C15EC:Mustafa Baser:/home/mbaser:/bin/bash:
smbpasswd programının kullanılması ile daha fazla bilgi için sayfa
189'daki "smbpasswd" başlıklı konuya bakınız.

158 © Mustafa Başer & Görkem Çetin - 2007


Dördüncü Kısım: Samba Programları ve Dosyaları

Dördüncü Kısım:
Samba Programları ve
Dosyaları

Bu kısım, Samba ile birlikte gelen dosya ve programların kullanımlarında


oluşmaktadır. Büyük oranla kılavuz sayfalarından esinlenerek hazırladığımız bu kısmı
satır satır okumaya ihtiyacınız olmayacaktır. Başvuru niyetiyle hazırladığımız bu
kısımda Samba'nın bazı dosya ve programlarını açıklamadık. Örneğin kod sayfalarının
hazırlanması ile ilgili program ve buna ait dosya (make_smbcodepage), sistem
yöneticisinin değil, Samba'yı geliştirenlerin kullanacağı dosya ve programlar olarak
düşünüyoruz.

© Mustafa Başer & Görkem Çetin - 2007 159


15. smbd: Smb Hizmetleri

15. smbd: Smb Hizmetleri

ı stemcilere SMB/CIFS hizmetleri sağlayan sunucudur. Bunlara


örnek olarak; dosya sunuculuğu, yazıcı sunuculuğu, Ana Alan
Denetçiliği, parola onaylama işlemi gibi hizmetler verilebilir.

Kullanımı
smbd [-D] [-a] [-o] [-d hata ayıklma düzeyi] [-l kayıt dosyası] [-p port
numarası] [-O soket seçenekleri] [-s yapılandırma dosyası] [-h]

Tanımı
smbd Windows ve DOS istemcilere dosya ve yazıcı paylaşımını
sğalayan sunucudur. Sunucu bu hizmetleri sağlarken SMB (veya
CIFS) protokolünü kullanır. Bu protokol LanManager ile uyumlu
olduğundan smbd aynı zamanda LanManager istemcilerine de
hizmet verebilir. Bunlar DOS için MSCLIENT 3.0, Çalışma Grupları
için Windows, Windows 95, Windows 98, Windows NT, OS/2,
Macintosh için DAVE ve Linux için smbfs'dir.
ıstemcilerden birisi bir istekte bulunduğunda bir oturum açılır. Her
bir istemci her bir oturum için sunucunun bir kopyasını alır. Bu
kopya daha sonra açılan oturum boyunca yapılacak bağlantılara
hizmet eder. ıstemcinin yapmış olduğu tüm bağlantılar kopunca bu
kopya da o istemci için son bulur.
Yapılandırma dosyası ve bu dosyada bulunabilecek tüm dosyalarda
bir değişiklik olursa her bir dakikada otomatik olarak yeniden
yüklenir. Bu yüklemeyi zorlamak için sunucuya "SIGHUP" sinyali
gönderebilirsiniz. Tekrar yükleme yapıldığında oluşan
değişikliklerden halihazırdaki bağlantılar etkilenmeyecektir. Yani bir
hizmete bağlı bulunan sitemci, o hizmet kaldırılmış olsa bile,
bağlantıyı kendisi kesene kadar hizmetten yararlanmaya devam

© Mustafa Başer & Görkem Çetin - 2007 161


15. smbd: Smb Hizmetleri

edecektir. Eğer bu hizmeti hemen kesmek istiyorsanız, smbd


sunucusunu öldürüp yeniden başlatmalısınız.

Seçenekler
-D
Bu seçenek kullanıldığında sunucu "daemon" olarak çalışacaktır.
Bunun anlamı, tek başına arka planda uygun bir portta istekleri
bekleyerek çalışmasıdır. Sunucuyu "daemon" olarak çalıştırmak,
gelişigüzel bir yazıcı ve dosya sunucusu olarak çalıştırmaktadan
daha iyidir ve tavsiye edilen bir çalıştırma şeklidir.
Öntanımlı olarak smbd "daemon" olarak çalışmayacaktır. Ancak Red
Hat, SuSE, Mandrake veya Caldera kullanıyorsanız ve sunucuyu
/etc/rc.d/init.d/smb start ile çalıştırdıysanız ya da setup dan
"system services" ile başlatmışsanız, Samba "daemon" olarak
çalışmaktadır.
-a
Bu seçeneğin belirtilmesi ile, yapılan her bağlantıya ait mesajların,
kayıt dosyasının sonuna eklenmesi sağlanır. Bu öntanımlı değerdir.
-o
Bunu belirtmişseniz, heryeni bağlantıda kayıt dosyası yeniden
yazılır. Öntanımlı olarak kayıt dosyasının sonuna ekleme yapılır.
-d hata ayıklama düzeyi
Hata ayıklama düzeyi 0 ile 10 arasında bir tamsayıdır. Bu seçenek
smb.conf dosyasında "log level" parametresi ile belirtilir. Eğer bu
dosyada belirtilenden başka bir düzey kullanmak istiyorsanız, bu
seçeneği kullanabilirsiniz. Her düzeyin nasıl çalıştığını merak
ediyorsanız, sayfa 52'e bakınız.
-l kayıt dosyası
Bu seçenek belirtilirse, sunucuya yapılan her bağlantı ile
sunucunun kendisinin verdiği mesajların bir dosyaya yazılması
sağlanır. Bu dosyanın büyüklüğünü smb.conf dosyasındaki "max log
size" parametresi ile ayarlayabilirsiniz. Dosyanın öntanımlı yeri
derleme esnasında belirtilir. Aynı zamanda smb.conf dosyasındaki
"log file" parametresi ile de dosyanın yerini belirtme şansınız var.
-O soket seçeneği
Bu seçeneğin geniş açıklamasını 5. bölüm deki "socket options"
parametresinden okuyunuz.
-p port numarası

162 © Mustafa Başer & Görkem Çetin - 2007


Seçenekler

Samba öntanımlı olarak kendisi için ayrılan 139. portta çalışır.


Ancak bazı durumlarda başka portlarda çalıştırma isteyebilirsiniz,
bu durumda bu seçeneğin kullanılması gerekir. Daha geniş bilgi
almak için 5. bölümdeki "socket options" parametresine bakınız.
-s yapılandırma dosyası
Yapılandırma dosyasının öntanımlı yeri derleme sırasında belirtilir.
Bu dosya yerine başka bir dosya kullanacaksanız, -s seçeneği ile tam
yerini ve dosya ismini belirtiniz. Red Hat, Mandrake, SuSE ve
Caldera Linux sürümlerinde öntanımlı yer /etc/smb.conf dur.
-h
smbd'nin kullanımı ile ilgili kısa bir yardım dosyasını ekranda
görüntüler.

Sunucuyu ıstek Geldiğinde Çalıştırmak


Eğer sisteminiz inetd gibi meta-daemon kullanıyorsa, smbd yi öyle
bir süreç olarak çalıştırabilirsiniz ki, sadece bir istek geldiğinde
devreye girer. Bunun yapılması, yerel makinadaki bazı dosyalarda
birtakım değişikliklerin yapılmasıyla olur.
ılk olarak, /etc/services dosyasında 139 portunun kullanılabilir
olduğundan emin olun. Bu dosyada aşağıdaki gibi bir satırın olup
olmadığını kontrol edin:
netbios-ssn 139/tcp
NIS/YP kullanıcıları yerel dosyada değişiklik yapmak yerine NIS
sunucu eşlemesini değiştirmelidirler.
Bir sonraki adım ise, /etc/inetd.conf dosyasına aşağıdaki gibi bir
satırın eklenmesidir:
netbios-ssn stream tcp nowait root /usr/sbin/smbd -s
/etc/smb.conf
Yukarıdakilerinin tümünün tek bir satırda olmasına, smbd
sunucusu ile smb.conf dosyasının bulunduğu yere dikkat
etmelisiniz. Eğer istiyorsanız, diğer seçenekleri de kullanabilirsiniz.

© Mustafa Başer & Görkem Çetin - 2007 163


16. nmbd: NetBIOS ısim Sunucusu

16. nmbd: NetBIOS ısim Sunucusu

n mbd'nin görevi IP üzerinde NetBIOS taşıyan istemcilere,


makinanın kendi NetBIOS ismini sunmasıdır. Ağınızdaki
herhangi bir makinadan bir istek geldiğinde, eğer üzerinde
çalıştığı makinaya istemde bulunuluyorsa cevap verir. nmbd aynı
zamanda Windows 95/98 kullanıcılarının çok kullandığı "Ağ
Komşularım"da kullanılan protokollere katılarak, kendi makinasının
isminin burada görünmesini sağlar.
Bir SMB istemcisi istekte bulunduğunda, çoğu zaman istemde
bulunduğu sunucunun IP adresini de bilmek ister.
Diğer sunucular arasında, nmbd bu isteği dinler, ve eğer kendi
ismine istemde bulunulursa, kendi IP adresi ile birlikte cevap verir.
Kendisinin doğal NetBIOS ismi, ana DNS sunucusunda kayıtlı olan
ismidir. Örneğin DNS kayıtlarında mbaser.kurum.com.tr adresine
sahip bir makinada çalışan bir Samba için NetBIOS ismi mbaser
olacaktır. Eğer bu ismi kullanmak istemiyorsanız, aşağıda
açıklayacağımız gibi, nmbd sunucusunu -n seçeneği ile
çalıştırabilirsiniz. Bu açıklamalardan anlaşılacağı üzere, nmbd ağ
üzerinde sadece kendi ismine yapılan yayın istemlerine cevap verir.
Eğer daha başka isimlere de cevap vermesini istiyorsanız, smb.conf
yapılandırma dosyası içerisinde belirtmeniz gerekir.
nmbd WINS (Windows Internet Name Server) sunucusu olarak ta
kullanılabilir. WINS'i, TCP/IP ağlarında iş gören DNS sunucusunun
Microsoft ağları için olanı olarak tanımlayabiliriz. Bir veri tabanı
oluşturacaksınız ve istemde bulunan makinalara bu veri tabanına
bakarak cevap vereceksiniz. Bunun yanında nmbd sunucusunu
WINS proxy olarak ta kullanma imkanınız var.

© Mustafa Başer & Görkem Çetin - 2007 165


16. nmbd: NetBIOS ısim Sunucusu

Kullanımı
nmbd [-D] [-o] [-a] [-H lmhosts dosyası] [-d hata ayıklama düzeyi] [-l
kayıt dosyası] [-n ana NetBIOS ismi] [-p port numarası] [-s
yapılandırma dosyası] [-h]

Seçenekler
-D
nmbd'yi bu seçenek ile çalıştırırsanız bir "daemon" olarak iş yapar.
Bunun anlamı, ilgili porta bir cevap gelene kadar kendini uykuya
yatırır. Öntanımlı olarak nmbd "daemon" olarak çalışmaz.
-a
Eğer bu seçenek belirtilirse herbir bağlantı kayıt dosyasına eklenerek
yazılır. Bu öntanımlı olarak böyledir.
-o
Bu seçenek ise yukardakinin tersine, bir istem geldiğinde "log"
dosyası yeniden açılır (eski bilgiler silinir).
-H lmhosts dosyası
Burada dosya ismi NetBIOS lmhosts dosyasıdır. lmhosts dosyası
NetBIOS isimleri ile birlikte IP adreslerinin yazıldığı bir dosyadır.
nmbd sunucusu bu parametre ile birlikte çalıştırıldığında bu dosya
yüklenir ve smb.conf dosyasında belirtilen sırada isim çözünürlüğü
olarak kullanılır. Unutmayın, nmbd sunucusu bu parametre ile
çalşıtırıldığında görevi ağdaki her istemciye isim çözünürlüğü
yapmak değildir. Bu görevi sadece bulunduğu makina için yapar.
Bu dosyanın doğal yeri derleme işleminde belirtilir. Çoğu zaman bu
yer /usr/local/Samba/lib/lmhosts, /usr/Samba/lib/lmhosts veya
/etc/lmhosts dur.
Bu dosyanın nasıl oluştuğuna kısaca bir göz atalım. Birinci sütun IP
adreslerini, ikinci sütun ise NetBIOS isimlerini içerir. "#" ile başlayan
satırlar yorum satırları olarak algılanır ve işleme konulmaz. Çoğu
zaman smb.conf dosyasının bulunduğu yer tercih edilir. Bir örnek
verecek olursak:

166 © Mustafa Başer & Görkem Çetin - 2007


Seçenekler

#
# Samba için örnek lmhosts dosyası
#
192.177.166.1 mbaser
192.177.166.2 gorkem
192.177.166.3 dilek
Yukarıda gördüğünüz gibi üç IP adresinin NetBIOS çözünürlüğü
yazılmıştır. dilek makinasına istemde bulunulduğunda aslında
192.177.166.3 IP adresli makinaya istemde bulunulduğu anlaşılır.
-d hata ayıklama düzeyi
Hata ayıklama düzeyi 0 ile 10 arasında bir tamsayıdır. Eğer bu
seçenek belirtilmez ise öntanımlı değer olarak sıfır alınır. Sayının
değeri artırıldıkça yapılan bağlantılar ile ilgili kayıt dosyasına yazılan
bilgiler artar. 1 düzeyi çoğu zaman tercih edilen bir düzeydir. Günlük
kullanımlarda, sizi tatmin edebilecek küçük bilgiler yazılır. 3 ve üzeri
düzeyi sadece geliştiriciler için anlamlıdır, çünkü bir olay ile birlikte
olup biten herşey kaydedilir ki çoğu şifrelenmiş haldedir. Unutmayın
bu seçeneği kullandığınızda smb.conf dosyasında belirttiğiniz hata
ayıklama düzeyi geçerliliğini yitirir.
-l kayıt dosyası
nmbd sunucusu kayıtlarını hangi dosyada tutacağını bu seçeneğin
belirtilmesi ile bilir. Aslında tam isim dosya isminin sonuna ".log"
uzantısı eklenerek kullanılır. Bu dosya çoğu zaman
/usr/local/Samba/var/log.nmb, /usr/Samba/var/log.nmb veya
/var/log/log.nmb dizinlerinde bulunur.
-n ana NetBIOS ismi
Bu seçenek ile birlikte, Samba'nın öntanımlı olarak aldığı
makinanızın DNS ismi yerine yeni bir isim verebilirsiniz. Örneğin,
Samba'nın çalıştığı makina gorkem.gelecek.com.tr ise, öntanımlı
NetBIOS ismi gorkem olacaktır. Ancak bu ismi -n parametresini
kullanrak değiştirebilirsiniz. -n fatih dediğinizde, Samba Microsoft
ağlarınızda gorkem yerine fatih olarak görünecektir. Bu parametreyi
smb.conf dosyasında da yapılandırabilirsiniz.
-p UDP port numarası
Burada PORT pozitif sayıdır.
Bu seçenek ile, nmbd'nin öntanımlı olan 137. porttan değil de başka
bir porttan cevap vermesini sağlayabilirsiniz. Eğer yardıma
ihtiyacınız olmayacak kadar uzman değilseniz, bu seçeneği
kullanmayın.
-s yapılandırma dosyası
Samba'nın yapılandırma dosyasının nerede olacağı derleme
sırasında belirtilir ve çoğu zaman /etc veya /usr/local/Samba/lib/
dizininde bulunur. Yapılandırma dosyanızı başka bir yere koymak
© Mustafa Başer & Görkem Çetin - 2007 167
16. nmbd: NetBIOS ısim Sunucusu

istiyorsanız bu parametreyi kullanabilirsiniz. Diyelim ki


/home/Samba/conf/ dizinine koymak istediniz bu durumda "-s
/home/Samba/conf/smb.conf" şeklinde bir seçenek vermelisiniz.
-h
Bu parametre ile nmbd'nin kabul ettiği seçenekleri içeren bir yardım
alırsınız.

168 © Mustafa Başer & Görkem Çetin - 2007


17. smbstatus: Samba'nın Durumunu Öğrenin

17. smbstatus: Samba'nın Durumunu


Öğrenin

s mbstatus; Samba ile birlikte gelen bir araç olup, Samba'ya


yapılmış olan bağlantıları izlemenize yarar. Samba'nın
durumunu öğrenmek için birkaç grafik arabirim de vardır.
Bunlardan birisi; yine Samba'nın bir parçası olan "swat" tır. Swat ile
ilgili açıklamalarımızı sayfa 201'de görebilirsiniz. En çok kullanılan
bir diğer araç ise KDE'nin bir parçasıdır. KDE her ne kadar
Samba'nın bir parçası değilse de, bununla ilgili kısa bir açıklamayı
bu bölümün sonuna koymayı ugun bulduk.

Kullanımı
smbstatus [-b][-d][-L][-p][-S][-s yapılandırma dosyası] [-u kullanıcı
ismi]

Seçenekler
-b
Kısa çıktı verir
-d
Ekrana çıktı verir
-L
Sadece kilit listesini verir
-p
smbd süreçlerini yazdırır ve çıkar
-s yapılandırma dosyası

© Mustafa Başer & Görkem Çetin - 2007 169


17. smbstatus: Samba'nın Durumunu Öğrenin

Samba yapılandırma dosyasını, öntanımlı yerinden başka bir yerde


tutuyorsanız bu parametreyi kullanın.
-u kullanıcı
Sadece sizin istediğiniz kullanıcıya ait bilgileri verir.

Örnek
Hiçbir parametre vermeden çıktımız şu şekilde olmaktadır:
$ smbstatus
Samba version 2.0.3
Service uid gid pid machine
mbaser mbaser mbaser 4608 Samba
(139.179.43.1) Mon Jun 7 12:14:
16 1999
No locked files
Share mode memory usage (bayts):
1048464(99%) free + 56(0%) used + 56(0%) overhead =
1048576(100%) total

KDE Samba Status


KDE, Linux kullanıcılarının vazgeçemediği masaüstüdür. Birçok
aracı bünyesinde barındırır. Bunlardan konumuzla ilgili olanı
"Samba Status" dur. Bu araç sayesinde, Samba'ya bağlantı yapmış
kullanıcıları grafik arabiriminde izleyebilirsiniz. Bu araca erişmek
için KDE altından şu yolu takip edin "K  Settings  Information 
Samba Status". şekil-17.1'de Samba'ya bağlantı yapmış kullanıcılar
ve durumları görünüyor. Bu araçta bir kullanıcı hakkında bilmek
istediğiniz herşey ekranda görüntüleniyor. Ekrandaki altı alanın
açıklaması sırasıyla şöyle:
Service
Kullanıcının hangi hizmete bağlantı yaptığı görüntülenir.
UID
Kullanıcının UNIX'te tanımlı olduğu kullanıcı hesabı ismi.
GID
UNIX kullanıcısının ait olduğu kullanıcı grubu.
PID
Bir kullanıcı Samba'ya bağlantı yaptığında, bu bağlantı için bir süreç
numarası atanır. Samba'ya bağlantı yapan kullanıcılar için atanan
süreç numarasını bu alandan takip edebilirsiniz.

170 © Mustafa Başer & Görkem Çetin - 2007


KDE Samba Status

Machine
Kullanıcıların bağlantı yaptıkları makinaların NetBIOS isimleri
Open File
Kullanıcıların bu hizmette açtıkları toplam dosya sayısı.

Hizmete Yapılan Bağlantının Kesilmesi


Bir kullanıcının Samba'ya yapmış olduğu hizmetlerden birisinin
koparılmasını istedğinizde, o satıra gelip farenizin sağ tuşuna
tıklayın ve "Kill" seçeneğini seçin. Bunu yapabilmek için root olmanız
gerekiyor.

Şekil- 17.1: Samba'ya bağlantı yapmış kullanıcıları izlemek ve bunların yaptığı bağlantıları
kedmek için KDE ile gelen güzel bir araç.

© Mustafa Başer & Görkem Çetin - 2007 171


18. smbclient: Linux/UNIX için SMB ıstemcisi

18. smbclient: Linux/UNIX için SMB


ıstemcisi

s mbclient ile UNIX sisteminiz, SMB sunucularına istemci olur.


SMB sunucularının dosya hizmetlerinden ve yazıcılarından
yararlanır. SMB yazıcılarına UNIX'inizden çıktı gönderebilir,
paylaştırılmış dosya sistemlerinden dosya indirebilir, veya dosya
gönderebilirsiniz. Eğer komut satırındaki standart ftp programlarını
kullanabiliyorsanız, smbclient'i kullanabilmek için başka bir
yardıma ihtiyacınız olmayacaktır.
Linux için diğer bir SMB istemcisi ise GNOME projesine dahil olna
gnomba dır. Bu pakte sayesinde Linux masaüstünden, Samba
sunucuların grafik arabirimde istemci olabilirsiniz. Tıpkı Windows'ta
bulunan "Ağ Komşuları" gibi. gnomba Samba aracı olmadığı halde
bu bölümün sonuna koymanın uygun olacağını düşündük.
smbclient programını kullanırken aşağıdaki seçenekleri iyi
bilmelisiniz.

Kullanımı
smbclient [-L NetBIOS ismi] hizmet [parola] [-N] [-s smb.conf] [-B IP
adresi] [-O soket seçeneği] [-R isim çözünürlüğü sırası] [-M NetBIOS
ismi] [-N] [-n NetBIOS ismi] [-d hata ayıklama düzeyi] [-P] [-p port] [-l
kayıt dosyası ismi] [-h] [-I erişilecek IP] [-U kullanıcı ismi] [-L
NetBIOS ismi] [-W çalışma gurubu] [-D dizin] [-c yorum cümlesi]

Seçenekler
-L NetBIOS ismi

© Mustafa Başer & Görkem Çetin - 2007 173


18. smbclient: Linux/UNIX için SMB ıstemcisi

Bu seçenek ile NetBIOS ismi verilen makinadaki paylaşımları, bu


makinanın bulunduğu çalışma grubundaki (veya NT alanındaki) tüm
sunucuların bir listesi ile (ana tarayıcı var ise) ana tarayıcının kim
olduğunu öğrenirsiniz. Örnek verecek olursak, mbaser adlı SMB
sunucusunun paylaşımlarını görelim:
$smbclient -L mbaser
Added interface ip=192.177.166.1 bcast=192.177.166.255
nmask=255.255.255.0
Got a positive name query response from 192.177.166.1
( 192.177.166.1 )
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.0.3]
Sharename Type Comment
--------- ---- -------
oyunlar Disk Oyun Proğramları
IPC$ IPC IPC Service (Samba
Server)
mbaser Disk Home Directories
Server Comment
--------- -------
MBASER Samba Server
Workgroup Master
--------- -------
MYGROUP MBASER

hizmet
Erişmek istediğiniz sunucudaki paylaşımı ifade eder. Bu ise
sunucunun ismi ve paylaşımın adından oluşur. şu şekilde bir
gösterimi vardır
//sunucu/paylaşım(hizmet)
Sunucudan kastımız sunucunun NetBIOS ismidir. Bir örnek vermek
gerekirse, aynı ağda bulunan mbaser adlı makinanın oyunlar
paylaşımı:
//mbaser/oyunlar
şeklinde gösterilir. "mbaser" sunucunun NetBIOS ismidir ve DNS
simi bundan farklı olabilir. Hemen bir uygulama yapalım:
$smbclient //mbaser/oyunlar
Added interface ip=192.177.166.1 bcast=192.177.166.255
nmask=255.255.255.0
Got a positive name query response from 192.177.166.1
( 192.177.166.1 )
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.0.3]
smb: \>
Burada kullanıcı mbaser adlı makinadaki oyunlar paylaşımına
ulaştı. Erişime izin verilmeden önce kullanıcının parolası soruldu.
ısterseniz bu parolayı komut satırından da verebilirdiniz, ancak
başkalarının görmesini istemezsiniz herhalde. "ıyi de bu parola kimin
parolası?" dediğinizi duyar gibi oluyorum. Bu verdiğimiz parola o

174 © Mustafa Başer & Görkem Çetin - 2007


Seçenekler

andaki UNIX makinasındaki kullanıcınızın parolası. Yani fatih


kullanıcısı UNIX makinasında bu komutu çalıştırırsa, erişmek
istediği mbaser sunucusundaki (veya mbaser makinasının
alanındaki) fatih kullanıcısının parolasıdır. Eğer bu sunucu bir ÇGW
veya Windows 9x ise, "oyunlar" paylaşımı için atanmış atanmış
parola. Parolasız bir paylaşım ise boş geçebilirsiniz. Farklı bir
kullanıcı adı ile erişmek istiyorsanız aşağıdaki açıklamalarımızı
okuyun. Dikkat ederseniz, kullanıcı isimleri her iki makinada da
aynıdır. Bu makinanın aynı IP ağında olduğunu unutmayın. Farklı
ağlardaki sunuculara erişmek için aşağıdaki açıklamalarımızı
okuyun.
parola
Erişilmek istenen sunucudaki veya alandaki parolanız. Örneğin
//mbaser/homes dizinine ulaşmak isteyelim ve parolamız x olsun:
$smbclient //mbaser/homes x
Added interface ip=192.177.166.1 bcast=192.177.166.255
nmask=255.255.255.0
Got a positive name query response from 192.177.166.1
( 192.177.166.1 )
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.0.3]
smb: \>
-N
Yararlanmak istediğiniz hizmete bir parola konulmamışsa -N
seçeneğini kullanabilirsiniz.
-s smb.conf
Öntanımlı dizindeki smb.conf dosyasını kullanmak yerine, başka bir
dosya kullanmak istiyorsanız bu parametreyi kullanabilirsiniz.
smb.conf dosyası hem Samba sunucuları hem de istemcileri
tarafından okunur.
-B IP adresi
Duyuru paketleri gönderirken kullanılacak olan IP adresi.
-O soket seçeneği
ıstemcinin TCP soket seçeneğini yapılandırır.
-R isim çözünürlüğü sırası
NetBIOS isim çözünürlüğünün yapılması için, kullanıcıya hangi
sırayı takip edileceği fırsatını tanır. ısim çözünürlüğünde başlıca
dört yöntem vardır. Bunlar: "lmhosts", "host", "wins" ve "bcast" dir.
şimdi bunlara kısaca bir göz atalım:
• lmhosts: smb.conf ile aynı yerde bulunması gereken lmhost
dosyası /etc/hosts dosyasına çok benzeyen bir yapıdadır.
NetBIOS isimlerine karşılık gelen IP adreslerinden oluşur.

© Mustafa Başer & Görkem Çetin - 2007 175


18. smbclient: Linux/UNIX için SMB ıstemcisi

Daha geniş bilgi için sayfa 165'deki "nmbd" konusuna


bakınız.
• hosts: NetBIOS çözünürlüğünde standart IP çözünürlüğü
kullanılır. Bunlar /etc/hosts, NIS ve DNS
çözünürlükleridir.
• wins: smb.conf dosyasında tanımlı bulunan WINS
sunucusuna sorgulama yapmak süretiyle isim çözünürlüğü
yapılır. WINS sunucusu yoksa bu seçenek iptal edilir.
• bcast: smb.conf'daki "interfaces" parametresinde tanımlı
bulunan tüm arayüzdeki ağlara bir duyuruda bulunulur ve
makina ismi sorulur. O isme sahip olan makinadan cevap
geldiğinde bağlantı kurulur. Bu saydıklarımız arasında en
güvensiz yoldur. Aradığınız makina aynı alt ağda değilse,
size cevap verme olasılığı yoktur veya oldukça düşüktür.
Hangi duyuru adresini kullanacağınızı -B parametresi ile
belirtebilirsiniz.
Bu parametrelerden hiçbirisini kullanmaz iseniz, smb.cof
dosyasındaki "name resolve order" seçeneğindeki sıra takip edilir.
-M NetBIOS ismi
Bu parametre ile başka bir makinaya WinPopup mesajları
göndermenizi sağlar. Eğer smb.conf dosyasında "message command"
parametresi yapılandırılmamışsa diğer bir Samba sunucusuna mesaj
gönderemezsiniz. Komutu yazıp "Enter" tuşuna bastığınızda,
bağlantı kurulur ve sizin mesajı girmeniz beklenir. Yazdığınız mesaj
bitince "Control-D" tuşlarına basıp gönderin. ışte bir Örnek:
$smbclient -M mbaser -U gorkem
Added interface ip=192.177.166.1 bcast=192.177.166.255
nmask=255.255.255.0
Got a positive name query response from 192.177.166.1
( 192.177.166.1 )
Connected. Type your message, ending it with a Control-D
Ne haber Mustafa? Isler Nasil?sent 30 bayts
gorkem kullanıcısı mbaser makinasına bir mesaj gönderiyor.
Unutmayın, eğer mesaj göndereceğiniz makina Samba veya NT ise
bir kullanıcı ismi de belirtmelisiniz. -U parametresinin kullanımına
aşağıdaki satırlardan bakınız.
Mesaj göndereceğiniz makinada WinPopup kurulu değilse veya ağ
mesajlarını kabul etmiyorsa, mesajınız gönderilir fakat herhangi bir
hata size bildirilmez.
Borulama (pipe) kullanarak diskinizdeki bir metin dosyasını da
göndermeniz mümkün. ısterseniz aşağıdaki komutu bir deneyin:

176 © Mustafa Başer & Görkem Çetin - 2007


Seçenekler

cat istekler.txt | smbclient -M mudur


ısteklerimi, gidip müdüre söylemek yerine bilgisayar ile
gönderiyorum. Naaparsınız bilgisayar insanı "antisosyal" yapıyor.
-N
Erişmek istediğiniz hizmette bir parola yoksa, size parola
sorulmasını önler.
-n NetBIOS ismi
Bir sunucuya erişmek istediğinizde, Microsoft ağlarında her
makinanın bir NetBIOS ismi olması gerektiğinden sizin de istemci
olarak bir NetBIOS ismine ihtiyacınız vardır. Bu isim, öntanımlı
olarak makinanızın DNS ismini kullanılır. Eğer başka bir makina
ismi ile istemci olmak istiyorsanız, bu seçeneği kullanınız. Özellikle
OS/2 LanManager sunucularına erişmek istediğinizde bu
parametreyi kullanmanız önerilmektedir.
-d hata ayıklama düzeyi
Hata ayıklama düzeyini belirtmezseniz sıfır (0) değeri alınır. 0 ile 10
arasında bir sayı yazabilirsiniz. Sayı büyüdükçe, yapılan işlere ait
tutanaklar daha da ayrıntılı hale gelir. Eğer smb.conf dosyasında
"debug level" (veya "log level") parametresi yapılandırılmış ise,
smbclient de öntanımlı olarak bu değeri kullanır. Hata düzeyi ile
ilgili ayrıntılı bilgiyi sayfa 52'de bulabilirsiniz.
-P
Samba 2.0'dan itibaren bu seçeneğin kullanımı kaldırılmıştır. Samba
artık erişilecek olan hizmeti kendisi ayırt edebiliyor. Eskiden,
kurulacak bağlantının bir yazıcıya olduğunu Samba'ya bu seçenek
ile belirtiyorduk.
-p port
SMB sunucuları öntanımlı olarak 139. portu kullanırlar. Eğer
erişeceğiniz sunuculardan birisi özel olarak başka bir portu
kullanacak şekilde yapılandırılmışsa, bu seçeneği kullanıp port
numarasını yazınız.
-l kayıt dosyası ismi
Eğer belirtirseniz, yaptığınız işlere ait kayıtları bir dosyada tutmanız
olanak tanır. Öntanımlı dosya derleme sırasında belirtilir. Eğer
dosya ismi log ise, kayıt tutulacak olan dosya ismi
log.istemci_makinanın_NetBIOS_ismi olur.
-h
Kullanım ile ilgili olan mesajı ekranda görüntüler.
-I IP adresi

© Mustafa Başer & Görkem Çetin - 2007 177


18. smbclient: Linux/UNIX için SMB ıstemcisi

Bağlantı yapacağınız makinanın IP adresini vererek, internete bağlı


dünyanın her yerindeki SMB sunucularına erişebilirsiniz. Bu
parametrenin öntanımlı değeri yoktur. Vermez iseniz, yerel ağınızda
isim çözünürlüğü yöntemi kullanılarak hangi IP'ye erişmek
istediğiniz belirlenir.
Örneğin 144.122.45.0 ağındaki bir makina 144.122.56.0 ağındaki
bir NT'ye istemci olmak istediğinde IP'nin de verilmesi şarttır. ışte
örnek:
45.0 ağındaki bir linux makina 56.0 ağındaki WinNT'deki
paylaşımları görmek istiyor.
$smbclient -I 144.122.56.125 -L scedunt -U mbaser
Added interface ip=144.122.45.123 bcast=144.122.45.255
nmask=255.255.255.0
Server time is Mon Apr 27 13:02:44 1998
Timezone is UTC+3.0
Password:
Domain=[SCEDU_NET] OS=[Windows NT 4.0] Server=[NT LAN Manager
4.0]
security=user
Server=[SCEDUNT] User=[] Workgroup=[SCEDU_NET] Domain=[]
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
C Disk
C$ Disk Default share
D Disk
D$ Disk Default share
E Disk
E$ Disk Default share
F Disk
F$ Disk Default share
home Disk
HP5MP Printer \\Tutor\scedu's
IPC$ IPC Remote IPC
MSSQL Disk
NETLOGON Disk Logon server share
print$ Disk Printer Drivers
SMS_SHR Disk SMS Site SCE 12/20/96
SMS_SHRD Disk SMS Site SCE 12/20/96
SMS_SITE Disk SMS Site SCE 12/20/96
This machine has a browse list:
Server Comment
--------- --------
SCEDUNT
This machine has a workgroup list:
Workgroup Master
--------- -------
SCEDU_NET SCEDUNT

Böyle uzaktaki bir makinaya istemci olmak için


smbclient //<erişilecek_makina>//paylaşım -I <IP> -U
<kullanıcı>
komutu çalıştırılmalıdır.

178 © Mustafa Başer & Görkem Çetin - 2007


Seçenekler

Örneğin:
$smbclient //scedunt//home -I 144.122.56.125 -U mbaser
Added interface ip=144.122.45.123 bcast=144.122.45.255
nmask=255.255.255.0
Server time is Mon Apr 27 13:12:23 1998
Timezone is UTC+3.0
Password:
Domain=[SCEDU_NET] OS=[Windows NT 4.0] Server=[NT LAN Manager
4.0]
security=user
smb: \> ls
. DA 0 Tue Jan 13
15:39:33 1998
.. DA 0 Tue Jan 13
15:39:33 1998
mbaser DA 0 Fri Mar 13
16:26:08 1998
32947 blocks of size 16384. 241 blocks available
smb: \> cd mbaser
smb: \mbaser\> ls
. DA 0 Fri Mar 13
16:26:08 1998
.. DA 0 Fri Mar 13
16:26:08 1998
books D 0 Fri Feb 27
16:35:53 1998
books.html A 1309 Wed Jan 14
12:17:31 1998
default.htm A 139 Wed Jan 14
12:19:22 1998
sce112.html A 18740 Mon Apr 20
10:33:38 1998
wp7linuxbetab.tar.gz A 26962514 Fri Feb 27
16:14:22 1998
32947 blocks of size 16384. 240 blocks available
smb: \mbaser\>

-U Kullanıcı ismi
Yukarıdaki örneklerimizde zaten bu seçeneği gördük. "-U" seçeneği
ile istemci olacağımız SMB sunucusuna kullanıcı adı göndeririz.
Eğer bu seçenek kullanılmaz ise, "USER" veya "LOGNAME" çevre
değişkenlerinin değeri karşı tarafa kullanıcı ismi olarak gönderilir.
Bu çevre değişkenleri yapılandırılmamış ve "-U" seçeneği de
kullanılmamış ise, "GUEST" olarak istemde bulunulur.
ıstemci makinamız kullanıcı ile birlikte bir de parola istiyorsa, bunu
kullanıcı isminden sonra "%" işareti koyup yazabiliriz. Örneğin
"mbaser" kullanıcısı "davul" parolası ile istemci olmak istiyorsa,
-U mbaser%davul
olarak verilir. Sürekli aynı kullanıcı ismi ve parolası ile istemci
oluyorsanız, "USER" çevre değişkenine "<kullanıcı_ismi>%<parola>"
değeri atayabilirsiniz:
$export USER=gorkem%zurna
-W çalışma gurubu

© Mustafa Başer & Görkem Çetin - 2007 179


18. smbclient: Linux/UNIX için SMB ıstemcisi

smb.conf dosyasındaki yapılandırılmış çalışma gurubuna değil de


başka bir çalışma gurubundaki bir sunucuya istemci olacaksanız bu
seçeneği kullanabilirsiniz.
-T tar seçeneği
Bir SMB sunucusundaki paylaşımların tamamını yerel makinanıza
almak istiyorsanız, smbclient programını bu seçenek ile
kullanacaksınız. Böylelikle, paylaşımın tamamı yerel makinaya
getirilerek "tar"lanacaktır. Veya yerel dizindeki "tar"lı bir dosyayı
karşı makinaya açarak gönderebilir. Hem gönderme işleminde hem
alma işleminde uzun dosya isimleri korunur. Bu seçenekle ilgili
kullanabileceğiniz diğer parametreler şunlardır:
• c: UNIX üzerinde tar dosyası oluşturur. Bu seçenekten
sonra mutlaka "tar" dosya ismi verilmelidir.
• x: UNIX makinadaki "tar" lı bir dosyayı karşı tarafa açarak
gönderir. Bu seçenekten sonra hangi dosyayı
gönderecekseniz, ismini vermelisiniz.
• N: Bu seçeneğin önüne bir dosya ismi veriyorsunuz, ve bu
dosyanın oluşturulduğu tarihten daha yeni olanlarını
alıyor.
• Örneğin, "Samba" adlı bir sunucunun "win" paylaşımında
bulunan win95 dizininin tamamnını, win95.tar ismi ile
yerel makinaya getirmek istiyorsak,
smbclient //Samba/win95 -T win95.tar win95/*.*
şekilinde bir komut kullanmanız yeterli olur.
• -D başlangıç dizini: smbclient başlatılmadan önce hangi
dizine gidileceğini belirtir. Örneğin, "Samba" adlı
sunucudaki "win" paylaşımında bulunan "win95" dizinine
erişmek istediğimizde
smbclient //Samba/win -D wind95
şeklinde bir istemde bulunabiliriz.

Bağlantıdan Sonra
smbclient ile bağlantı kurduktan sonra, standart ftp istemcisini
nasıl kullanıyorsanız, hemen hemen aynı komutlar geçerlidir. Hangi
komutları kullanacağınıza dair bilgiyi "help" yazarak edinebilirsiniz.
Örneğin:

180 © Mustafa Başer & Görkem Çetin - 2007


Bağlantıdan Sonra

$smbclient //mbaser/homes
Added interface ip=192.177.166.5 bcast=192.177.166.255
nmask=255.255.255.0
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.0.3]
smb: \> help
ls dir du lcd cd
pwd get mget put mput
rename more mask del open
rm mkdir md rmdir rd
prompt recurse translate lowercase print
printmode queue cancel quit q
exit newer archive tar
blocksize
tarmode setmode help ? !
smb: \>

Herbir komut ile ayrıntılı bilgi almak için


help <komut>
yazmalısınız. Örneğin "dir" komutunun ne olduğu nasıl
kullanıldığını
smb: \> help dir
HELP dir:
<mask> list the contents of the current directory
ile öğrenebilirsiniz.
Bazılarınız, "ıyi hoş da ben ıngilizce bilmem ki" diyecektir. Sizler için
hangi komutu nasıl kullanacağınızı aşağıda açıklıyoruz:
? [komut]: Herhangi bir komut ile ilgili yardım alınır. Komut
belirtmeyecek olursanız, kullanabileceğiniz komutların bir listesini
elde edersiniz. "help" komutu ile aynıdır.
! [kabuk komutu]: Yerel UNIX makinadaki kabuk komutlarının veya
programlarının çalıştırılmasını sağlar. smbclient ile istemci oldunuz
fakat, mektup göndermek istiyorsunuz, yapmanız gereken
smb: \> !pine
komutunu çalıştırmak olacaktır. "pine" programından çıktığınızda
tekrar smbclient komut satırına düşersiniz.
cd [dizin]: Her zaman kullandığınız dizin değiştirme komutudur.
"dizin" vermez iseniz çalışma dizininiz gösterilir.
del: Çalışma dizininizdeki dosyaları silmek için kullanılır. Örneğin,
"doc" uzantılı tüm dosyaları silmek için:
smb: \> del *.doc
komutu kullanılır.
dir: Çalışma dizinindeki dosya ve dizinlerin listelenmesi için
kullanılır. ls komutu ile aynıdır. Star Office'in ".sdw" uzantılı
dosyalarını listelemek için kullanacağınız komut şudur:

© Mustafa Başer & Görkem Çetin - 2007 181


18. smbclient: Linux/UNIX için SMB ıstemcisi

smb: \> ls *.sdw


browser.sdw 21504 Wed May 12
21:25:40 1999
tr_nmbd.sdw 27648 Mon Jun 7
20:55:18 1999
smb_nedir.sdw 150016 Sun May 16
11:30:19 1999
1blm5.sdw 93696 Sun May 16
14:17:07 1999
tr_printing.sdw 34816 Thu Jun 3
19:56:49 1999
smbkitap.sdw 805376 Sat Jun 12
22:17:36 1999
tr_nmblookup.sdw 30208 Mon Jun 7
20:55:19 1999
tr_swat.sdw 385024 Mon Jun 7
20:55:31 1999
tr_smbstatus.sdw 22016 Mon Jun 7
20:55:32 1999
39016 blocks of size 32768. 8661 blocks available

exit: Sunucuya olan bağlantı kesilir ve programdan çıkılır.


get [getirilecek_dosya_ismi] [yerel_dosya_ismi]: Sunucudan dosya
getirmenizi sağlar. Getirmek istediğiniz dosya ismini belirttikten
sonra, isterseniz bunu yerel makinaya hangi isimle
kopyalanacağınızı belirtebilirsiniz. Örnek olarak, browser.sdw
dosyasını sunucudan alıp tarama.sdw olarak kopyalamak için:
smb: \> get browser.sdw tarama.sdw
getting file tarama.sdw of size 21504 as tarama.sdw (300
kb/s) (average 300 kb/s)
komutunu kullanmalısınız. Getirilecek tüm dosyaların "binary"
olduğunu unutmayın.
help: Yukarıda açıkladığmız "?" ile aynıdır.
lcd [dizin]: Yerel makinadaki dizini değiştirmek için kullanılır. Eğer
dizin yazılmazsa, bulunduğunuz dizin gösterilir. Örenğin:
smb: \> lcd
the local directory is now /home/mbaser/.gnome-desktop
lowercase: Sunucudan get veya mget ile dosya getirirken, dosya
isimlerinin küçük harflere dönüştürülmesini sağlar.
ls: "dir" ile aynıdır.
md [dizin]: Belirtilen patikada yeni bir dizin açmak için kullanılır.
"mkdir" ile aynıdır.
mget: Belirttiğiniz maskeye uyan tüm dosyaları getirmenize yarar.
Örneğin "s" harfi ile başlayan tüm "jpg" uzantılı dosyaları getirmek
için:

182 © Mustafa Başer & Görkem Çetin - 2007


Bağlantıdan Sonra

smb: \> mget s*.jpg


Get file swat1.jpg? y
getting file swat1.jpg of size 69465 as swat1.jpg (1413.27
kb/s) (average 831.974 kb/s)
Get file swat2.jpg?
komutunu kullanıyoruz. Her dosyayı getirmeden önce size sorar,
getirmek istiyorsanız "y" harfi ile onaylıyorsunuz. Bundan kurtulmak
istiyorsanız "prompt" seçeneğine bakınız. Alt dizinlerin de taranması
iiçin "recurse" yapılandırılması "ON" olmalıdır ("recurse" seçeneğine
bakınız).
mkdir [dizin]: "md" ile aynı.
mput: Belirttiğiniz dosyaları sunucuya göndermek için kullanırsınız.
"xls" uzantılı tüm dosyaları sunucuya göndermek için
smb: \> mput *.xls
"prompt" seçeneğine de bakınız. Alt dizinlerin de taranması için
"recurse" yapılandırılması "ON" olmalıdır ("recurse" seçeneğine
bakınız).
print [dosya]: Bir yazıcı hizmetine bağlantı yapmışsanız, yerel
dizindeki dosyanızın sunucudaki paylaştırılmış yazıcıya
bastırılmasını sağlar. "printmode" seçeneğine de bakınız.
printmode [grafik veya metin]: Hangi tür baskı istediğiniz belirtir.
Örnek:
smb: \> printmode
the printmode is now graphics
smb: \> printmode
the printmode is now text
prompt: "prompt" seçeneğini kullanarak; "mput" ve "mget"
komutlarını kullanırken, dosyalarını aktarılmasında size sorulup
sorulmamasını ayarlayabilirsiniz. "ON" olursa, size sorulacak, "OFF"
olursa sorulmayacak. Sorulursa "Y" ile cevap verebilir, "N" ile
reddedebilirsiniz.
smb: \> prompt
prompting is now off
smb: \> prompt
prompting is now on
put [yerel_dosya_ismi] [karşıdaki_dosya_ismi]: Yerel makinadaki
bir dosyanızı karşı makinaya gönderir. Gönderme esnasında hangi
isimle gönderileceğini de belirtebilirsiniz. "lowercase" seçeneğine de
bakmalısnız. "swat1.jpg" dosyasını "swatbir.jpg" olarak göndermek
için:

© Mustafa Başer & Görkem Çetin - 2007 183


18. smbclient: Linux/UNIX için SMB ıstemcisi

smb: \> put swat1.jpg swatbir.jpg


putting file swat1.jpg as \swatbir.jpg (1233.4 kb/s)
(average 1233.4 kb/s)
queue: Yazıcı kuyruğuna bağlantı yapmış iseniz, kuyruktaki
görevleri ve yazıcının durumunu öğrenirsiniz.
quit: "exit" ile aynıdır.
rd [dizin]: "rmdir" ile aynıdır.
recure: "mput" ve "mget" komutlarını kullanırken, alt dizinlerin de
taranmasını istiyorsanız,; bu yapılandırma "ON" olmalıdır. Örnek:
smb: \> recurse
directory recursion is now on
smb: \> recurse
directory recursion is now off
rm: Sunucudaki çalışma dizininizde bulunan dosyaları silmenize
yarar. Örneğin, ilk harfi ne olursa olsun fakat "wat" ile devam eden
tüm dosyaları silmek için:
smb: \> rm ?wat*
rmdir: Dizinleri silmek için kullanabilirsiniz.
tar [c|x]: "smbclient" istemcisini "-T" parametresi ile kullandığınız
zamanki ile aynı işi yaparsınız. Yani önce bağlantıyı kurar, daha
sonra "smb" komut satırından "tar" lama işlemi yapabilirsiniz.
blocksize [blok büyüklüğü]: "tar" dosyalarının hangi blok
büyüklüğünde yazılacağını belirtir. Öntanımlı değeri 512 bayttır.
setmode [dosya_ismi] {izin=[+|\-]rsha}: DOS "attrib" komutu'nun
smb istemci sürümüdür. Dosyaların izinlerini yapılandırmada
kullanılır. Örneğin tüm dosyaları salt okunur yapmak istiyorsak:
smb: \docs\> setmode *.* +r
perm set 1 0

gnomba
gnomba Linux/UNIX'ta X-Windows altında çalışan grafik arabirimli
bir SMB istemcisidir. Bir GNOME projesi olan gnomba'yı aşağıdaki
adresten indirebilirsiniz:
http://gnomba.darkcorner.net
RPM tabanlı bir Linux dağıtımı kullanıyorsanız, rpm'sini indirip
kolayca kurmak mümkün olur. Eğer masaüstü olarak GNOME
kullanıyorsnanız, programı çalıştırmak için "gnome(ayak) 
Networking  GNOME Samba Browser" yolunu izleyerek programı
çalıştırabilirsiniz. Başka bir pencere yöneticisi kullanıyorsanız, X-
Windows altından komut satırına geçerek şu komutu yazın

184 © Mustafa Başer & Görkem Çetin - 2007


gnomba

$gnosamba
Programın ilk kez çalıştırılmasında yapmanız gereken ilk şey,
gnomba'nın hangi ağı tarayacağını belirtmek olacaktır. Bunun için
"Options  Preferences" menüsüne gelin ve şekil-18.1'deki gibi
taranacak ağı yazın. Bizim örneğimizde 139.179.43.1'den başlayıp
139.179.43.254'e kadar olan tüm IP'lerin taranacağı görünüyor.

Şekil- 18.1: gnomba'ya hangi ağları taratmak istiyorsanız, onları belirtmek zorundasınız.

Eğer program çalıştırıldığında ağın otamatik olarak taranmasını


istiyorsanız, yine aynı pencereden "Options" sekmesine gelin ve
"Scan on program open" seçeneğini işaretleyin. Buradaki diğer
seçenekleri de kullanabilirsiniz. Bu işlemin yapıldığı pencere şekil-
18.2'de görünüyor.

© Mustafa Başer & Görkem Çetin - 2007 185


18. smbclient: Linux/UNIX için SMB ıstemcisi

Şekil- 18.2: gnomba çalıştırıldığında belirttiğiniz ağı tarayıp sunucuları bulabilir.

şimdi ana pencereden "File  (re)scan" menüsü ile ağı taratın.


Ağınızdaki tüm SMB sunucularının ana pencerede yer almasını
bekleyin (30 saniye kadar). şekil-18.3'te SAMBA çalışma grubundaki
OBL sunucusu görünüyor.

Şekil- 18.3: gnomba ile SMB istemcilerine erişmek çok kolay.

Hangi sunucuya erişme istiyorsanız, onun üzerine gelin ve çift

186 © Mustafa Başer & Görkem Çetin - 2007


gnomba

tıklayın. Sunucuya bağlanmak için sizden kullanıcı hesabı ve şifresi


sorulur. daha sonra istediğiniz bir hizmeti bir dizine bindirebilir ya
da "gmc" ile tarayabilirsiniz. Bu işlemleri hizmet üzerine gelip farenin
sağ tuşuna basıp ilgili seçenek ile yapabilirsiniz.

© Mustafa Başer & Görkem Çetin - 2007 187


19. smbpasswd: Samba Parola ışlemleri

19. smbpasswd: Samba Parola


ışlemleri

K ullanıcıların SMB parolalarını değiştirmek üzere kullandıkları


programdır. Sadece yerel Samba parolaları değil, diğer NT
sunucularındaki parolalarını da değiştirebilirler.

Kullanımı
smbpasswd [-a] [-d] [-e] [-D hata ayıklama düzeyi] [-n] [-r uzaktaki
makina ismi] [-R isim çözünürlüğü sırası] [-m ] [-j alan] [-U
kullanıcı ismi] [-h] [-s] [kullancı ismi]

Tanımı
Bu program Samba paketinin bir parçasıdır.
smbpaswd programını yerel sunucu (Samba) için kullanmak
istiyorsanız, Samba'nın şifrelenmiş parolaları kabul edecek şekilde
yapılandırılmış olması gerekmektedir. Bu şekilde yapılandırmak
istiyorsanız, 14. bölümdeki açıklamaları dikkatlice okuyunuz.
smbpasswd programı "root" veya sıradan bir kullanıcının
çalıştırmasına bağlı değişik amaçla kullanılabilir. Herhangi bir
kullanıcı tarafından çalıştırıldığında, yaptığı tek iş SMB parolası
tutan bir sunucudaki parolayı değiştirmek olur.
smbpasswd programı herhangi bir seçenek ile çalıştırılmaz ise, yerel
makinadaki bu programı çalıştıran kullanıcının parolasını değiştirir.
Bu açıdan tıpkı passwd programına benzemektedir. Ancak passwd
programı "root" olarak gidip /etc/passwd (ya da /etc/shadow)
dosyasında değişiklik yaparken, smbpasswd, yerel makinada çalışan
smbd sunucusuna parolanın değiştirilmesi için istemde bulunur.

© Mustafa Başer & Görkem Çetin - 2007 189


19. smbpasswd: Samba Parola ışlemleri

Yani istemci-sunucu mantığı ile çalışır. Bu yüzden, yerel makinada


parola değiştirilecekse smbd'nin mutlaka çalışıyor olması gerekir.
UNIX sistemlerinde şifrelenmiş parola genellikle smbpasswd
dosyasında saklanır ve Red Hat Linux sürümlerinde bu dosyanın
yeri /etc dizinidir.
Sıradan bir kullanıcı tarafından herhangi bir seçenek verilmeden
çalıştırılınca, önce eski parola sorulur ve daha sonra iki kez yeni
parola sorulur. Eski parola yanlış verilmişse veya yeni parolalar
birbirini tutmuyorsa parola değiştirilmez. Eğer kullanıcının parolası
boş ise (parola, smbpasswd dosyasında "NO PASSWORD" ile
başlıyorsa) eski parola sorulduğunda [Enter] ile geçilmelidir.
smbpasswd programı, sıradan bir kullanıcı tarafından Ana Alan
Detnetçisi olan Windows NT'deki parolanın değiştirilmesi için de
kullanılabilir.
smbpasswd programı, root tarafından çalıştırılacak olursa, başka
kullanıcıların parolalarının değiştirilmesi yanında, smbpasswd
dosyasına hem kullanıcı ekleme hem de silme işlemi yapılabilir. root
tarafından çalıştırıldığında smbpasswd dosyası direk olarak
değiştirilir, ve smbd'nin çalışıyor olmasına gerek kalmadan işlemler
yapılır.

Seçenekler
-a
Sadece root tarafından çalıştırılabilen bu seçenekten sonra
yazacağınız kullanıcı ismi smbpasswd dosyasına eklenir. Eski
parolayı [Enter] ile geçiniz. Eğer verdiğiniz kullanıcı ismi var ise,
işlem yapılmaz. Bu şekilde çalıştırılması aynen passwd programı
gibidir. Eklenecek kullanıcının /etc/passwd dosyasında mutlaka
tanımlı olması gerekiyor. Örneğin daha önce /etc/smbpasswd
dosyasında tanımlı olmayan gorkem kullanıcısı için:
smbpasswd -a gorkem
New SMB password:
Retype new SMB password:
Added user gorkem.
Password changed for user gorkem.
-d
Bu seçenek Samba kullanıcılarının hesabını askıya almak için
kullanılır. Askıya alma işlemi smbpasswd dosyasında, kullanıcı
hesabı alanına 'D' harfi yazılarak gerçekleştirilir.
Eğer smbpasswd dosyanız eski ise (Samba'nın 2.0 sürümünden
önceki), bu dosyalarda kullanıcı hesabı alanı bulunmadığından,
kullanıcıyı askıya almak için parola kısmına "X" harfleri yazılır.

190 © Mustafa Başer & Görkem Çetin - 2007


Seçenekler

Böyle durumlarda kullanıcıyı askıdan düşürecek olursanız eski


parolasından eser kalmayacaktır.
Bu seçenek sadece root tarafından kullanılabilir.
-e
Sadece root tarafından kullanılabilen bu seçenek, arkasına
yazacağınız kullanıcının hesabını askıdan düşürür. Eğer
smbpasswd dosyanız eski ise, hesabı askıya alındığında parolası
silindiği için, parola yeniden yapılandırılacaktır.
-D hata ayıklama düzeyi
Yaptığınız işlere ait kayıtların tutlacağı düzeyi belirtir. Düzey 0'dan
10'a kadar olan tamsayılardır. Düzey arttıkça tutulacak olan
kayıtların derinliği de artmış olur.
-n
Bu seçenekten sonra yazacağınız kullanıcya ait parola yerel
smbpasswd dosyasında boş hale getirilir. Bu, smbpassd dosyasında,
parolaya ait ilk alana "NO PASSWORD" yazılarak gerçekleştirilir.
Eğer parolası boş olan kullanıcıların Samba hizmetlerinden
yararlanmasını istiyorsnanız, smb.cof dosyasındaki genel
yapılandırma bölümünde
null passwords = true
satırını kullanmalısınız.
Bu seçenek sadece root tarafından kullanılabilir.
-r uzaktaki makina ismi
Kullanıcıların, yerel makina yerine başka bir makinadaki parolasını
değiştirmesi için kullanılır. "uzaktaki makine ismi", parola
değiştirmek istediğiniz sunucunun NetBIOS ismidir. ısim
çözünürlüğü sırası, -R seçenği ile belirtilebilirken, öntanımlı olarak
smb.conf dosyasındaki sıra kullanılır.
Uzaktaki makinada parolası değiştirilecek olan kullanıcı, o andaki
UNIX makinada çalışan kişidir. Başka bir kullanıcı hesabının
parolası değiştirilmek isteniyorsa, -U seçeneği kullanılmalıdır.
Bir NT alanındaki parolanızı değiştirecekseniz, bu alanı denetleyen
AAD'nin NetBIOS ismi verilmelidir. Yedek alan denetçileri, AAD'deki
parolaların birer kopyasını alırlar ve bunlardaki parolalar salt-
okunur olduğundan, YAD'lardaki parolalarınızı değiştiremezsiniz.
Win9x sistemleri gerçek parola veritabanına sahip olmadıklarından,
parola değiştirme işlemi gerçekleşemez.
-R isim çözünürlüğü sırası

© Mustafa Başer & Görkem Çetin - 2007 191


19. smbpasswd: Samba Parola ışlemleri

Uzaktaki makinaların NetBIOS isimleri çözümlenirken hangi sıranın


takip edileceği belirtilir. Seçenekler: "lmhosts", "host", "wins" ve
"bcast" dır. Bunları kısaca açıklamaya çalışalım:
lmhosts: Genelde /etc dizinince bulunan Samba'ya ait lmhost
dosyasından IP'ye bakılır.
• host: /etc/hosts, NIS veya DNS kullanılarak standart UNIX
isim çözünürlüğü kullanılır.
• wins: smb.conf dosyasında "wins server" parametresinde
belirttiğiniz WINS sunucusuna istemde bulunularak isim
çözünürlüğü gerçekleştirilir.
• bcast: Ağa bir istemde bulunulur ve isim sorulur. Cevap
veren makinanın o isme sahip olduğu düşünülür. Eğer
yerel bir ağdaki makinaya bakıyorsanız, en iyisi bu
seçeneği kullanmak olacaktır.
Bu parametreyi kullanmayacak olursanız, smb.conf 'taki "name
resolve order" parametresine atanan sıra kullanılır. Ne smb.conf
ne de bu parametre ile bir sıralama vermez iseniz, öntanımlı olan
şu sıra kullanılır: lmhosts, host, wins, bcast.
-m
Bu seçenek, smbpasswd programına, bahsi geçen hesabın bir
makina hesabı olduğunu söyler. Bu seçenek, Samba'yı Ana Alan
Denetçisi olarak kullanacaksanız geçerlidir.
-m seçeneğini sadece root kullanabilir.
-j alan
Bu seçenek, Samba'yı bir NT alanına sokmak için kullanılır. Bir alan
üyesi olarak, Samba, herhangi bir Windows NT sunucusu gibi alan
denetçisi için kullanıcıların onaylama işini yapabilir. Bunun için
smb.conf dosyasının genel yapılandırmaları içerisinde kullanılması
gereken "security=domain" parametresine sayfa 114'den
bakabilirsiniz.
Bunun yapılabilmesi için, Windows NT alanının yöneticisi, "Server
Manager for Domains" programını kullanarak, Samba'nın ana
NetBIOS ismini alan üyesi olarak eklemek zorundadır.
Yukarıdaki işlemler yapıldıktan sonra, bu parametre kullanılarak,
Samba NT alanına girer. Güvenli bir iletişim için gerekli olan üyelik
parolasını değiştirebilirsiniz. Daha sonra bu parola yerel bir dosyada
sadece root tarafından okunabilen şu isimde saklanır:
<alan>.<makina>.mac. Örneğin, penguen alanındaki,
Samba_penguen NetBIOS isimli bir makina için
penguen.Samba_penguen.mac olacaktır.

192 © Mustafa Başer & Görkem Çetin - 2007


Seçenekler

Bu işlem bir kere yapıldı mı, smb.conf dsyasında "security=domain"


yapmalısınız ki, Samba'ya erişmek isteyen kullanıcıların onaylanma
işini, bulunduğu NT alnındaki AAD yapsın.
Kullanıcıların onayı AAD tarafından yapılsa bile, UNIX makinada bu
kullanıcılara ait hesaplar bulunmak zorundadır.
Bu seçenek sadece root tarafından kullanılabilir.
-U kullanıcı ismi
Uzaktaki bir makinada parola değiştirilecekse -r seçeneği ile birlikte
kullanıldığında, hangi kullanıcının parolası değiştirilmek istendiği
belirtilir. Eğer yerel makinadaki kullanıcı isminiz ile uzaktaki
makindadki kullanıcı isminiz aynı ise bu seçeneği kullanmanıza
gerek yoktur.
-h
smbpasswd programının kullanılması ile ilgili yardım dosyasını
ekrana çağırır. Yardımı çağıran kullanıcı normal bir kullanıcı ise,
root'un kullanabileceği seçenekler ekranda görüntülenmez.
-s
Bu seçenek smbpasswd programını sessizce çalıştırır. Eski ve yeni
parolayı sormak yerine, standart girdiden okur (yani /dev/tty'den
okumaz). Bu seçenek daha çok, başka bir program içerisinden
çağırıldığında kullanılır.
kullanıcı ismi
Bu seçenek root tarafından kullanabilen diğer seçenekler ile birlikte,
hangi kullanıcı üzerinde işlem yapılacağını beilirtir.

© Mustafa Başer & Görkem Çetin - 2007 193


20. lmhosts: Samba NetBIOS Makina ısmi Dosyası

20. lmhosts: Samba NetBIOS


Makina ısmi Dosyası

l
mhosts dosyası IP adreslerinin NetBIOS isimleri ile eşlenmesi için
kullanılır. Linux/UNIX kullanıcıların yaygın olarak kullandığı
/etc/hosts dosyasına benzemektedir, bu dosyadan tek farkı "host"
yerine NetBIOS isimlerinin kullanılmasıdır.
lmhosts dosyasının yeri genellikle /etc dizinidir. Nerede bulunduğu
smb.conf dosyasında belirtilir.
Dosyanın yapısı yine /etc/hosts dosyasına çok benzemektedir. Bir
ASCII dosyası olan lmhosts dosyasının birinci sütununda IP adresi,
ikinci sütununda ise makinaların NetBIOS ismi bulunur. Dosya
içerisindeki "#" ile başlayan tüm satırlar yorum satırı olarak
değerlendirilir.
Örnek bir yapılandırma dosyası şu şekildedir:
# lmhost dosyasına bir örnek
#
139.179.43.1 Samba
139.179.43.51 lab-01
139.179.43.71 ogretmen
144.122.45.56 aykut
Bu dosyada dört makinanın IP adresi ile NetBIOS isimleri
eşlenmiştir. Son satırdaki makinanın başka ağda olduğuna
dikkatinizi çekmek istiyoruz.

© Mustafa Başer & Görkem Çetin - 2007 195


21. nmblookup: NetBIOS ısimlerine Bakmak

21. nmblookup: NetBIOS ısimlerine


Bakmak

U NIX/Linux işletim sistemlerini kullananların oldukça fazla


başvurduğu komutlardan birisi nslookup komutudur. Bu
komut ile bir IP adresine ait ismi veya bir isme ait IP adresini
bulabilirsiniz, bunun yanında bu adres çözünürlüğünün hangi DNS
sunucusunda saklandığını da elde etme imkanınız vardır. Bu görevi
Microsoft ağlarında yapabilmek için geliştirilen bir araç vardır:
nmblookup. UDP üzerinde çalışan araç ile hangi NetBIOS isminin
hangi IP adresli makinaya (veya tersi) ait olduğunu bulabilirsiniz.

Kullanımı
nmblookup [-B duyuruadresi] [-M] [-R] [-S] [-A] [-r] [-T]
Hemen NetBIOS adı gorkem olan makinanın hangi IP adresine sahip
olduğunu bulalım:
$nmblookup gorkem
Sending queries to 139.179.43.255
139.179.43.11 gorkem<00>
Gördüğünüz gibi nmblookup yerel ağa bir istekte bulunup, gorkem
makinasının adresini istiyor. Yerel tarayıcıdan gelen habere göre
gorkem makinasının IP adresi 139.179.43.11 dir.

Seçenekler
nmblookup komutunun kullanımı bu kadar basit değildir. Birçok
seçenek ile birlikte kullanılabilmektedir. şimdi bu seçeneklerin neler
olduğuna kısaca bir bakalım:
-B duyuruadresi

© Mustafa Başer & Görkem Çetin - 2007 197


21. nmblookup: NetBIOS ısimlerine Bakmak

Bu seçenek, smb.conf dosyasında belirtilen duyuru (broadcast)


adresi yerine başka bir adres kullanmak istediğinizde kullanılır.
-M
0x1d formatında yazılmış NetBIOS ismine bakarak, yerel ağınızdaki
Ana Tarayıcıyı arar. Eğer isim "-" olarak verilirse, __MSBROWSE__
isimli özel bir tarayıcıyı arayacaktır.
Örneğin, bu dökümanın yazıldığı makinanın bulunduğu ağdaki Alan
Tarayıcısını bulalım. Bunun için "nmblookup -M -" komutunu
çalıştırmamız yeterli olacaktır.
$nmblookup -M -
Sending queries to 139.179.43.255
139.179.43.211 __MSBROWSE__<01>
-R
Tersten isim bakışları için kaç basamak ileri gidileceğini ayarlamak
için kullanılır. Bu parametre, WINS sunucusuna bir isim bakmak
için istemde bulunulduğunda ve WINS sunucusunun elinde bulunan
isimlerin listesini istemekte kullanılır. Boş bırakılacak olursa,
makina üzerindeki normal NetBIOS işlemleri uygulanır.
-S
Bu seçenek ile karşıdaki makinanın durumu hakkında bilgi
alabilirsiniz. Bazen karşıdaki makina size cevap vermeyebilir. Örnek
olarak gorkem makinasının ne durumda olduğunu soralım:
$nmblookup -S gorkem
Sending queries to 139.179.43.255
139.179.43.11 gorkem<00>
Looking up status of 139.179.43.11
received 7 names
GORKEM <00> - B <ACTIVE>
GORKEM <03> - B <ACTIVE>
GORKEM <20> - B <ACTIVE>
..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>
penguen <00> - <GROUP> B <ACTIVE>
penguen <1d> - B <ACTIVE>
penguen <1e> - <GROUP> B <ACTIVE>
num_good_sends=0 num_good_receives=0

şimdi de cevap vermeyen bir makinadan örnek:


$ nmblookup -S teacher
Sending queries to 139.179.43.255
139.179.43.201 teacher<00>
Looking up status of 139.179.43.201
No status response (this is not unusual)
-A
Karşıdaki makinanın hangi durumda olduğunu öğrenmek için
NetBIOS ismini değil de IP adresini kullanmak istiyorsanız, isteğinizi
-S parametresi yerine -A parametresi ile yapmalısınız.
-r

198 © Mustafa Başer & Görkem Çetin - 2007


Seçenekler

Bu parametre ile 137. UDP portuna bağlanmaya çalışırsınız. Bunun


nedeni Windows 95 bir böcek nedeni ile kendilerine istemde bulunan
makinaların hangi UDP portundan istek yaptığını gözardı etmesi ve
sadece 137. porta cevap göndermesidir. Eğen smb.conf dosyanızda
137. UDP portu yerine başka bir port belirtmiş iseniz bu parametreyi
kullanmanız gerekecektir.
-T
Daha önce bulduğunuz IP adreslerini, DNS sunucusundaki tersten
çözünürlüğü kullanarak, NetBIOS isimlerini elde etmenize yarar.
Örneğin;
$nmblookup -T gorkem
Sending queries to 139.179.43.255
gorkem.penguen.bilkent.edu.tr, 139.179.43.11 gorkem<00>

© Mustafa Başer & Görkem Çetin - 2007 199


22. swat: Grafik Arabirimli Yapılandırma Aracı

22. swat: Grafik Arabirimli


Yapılandırma Aracı

s wat inetd'den çalışan Samba için web tabanlı bir


yapılandırma aracıdır. Kendi başına bir web sunucusu olan
swat'ın amacı Samba'nın yapılandırılması ile takibini görsel
ortamda yapmanıza olanak sağlamaktır. Diğer grafik arabirimli
yapılandırma araçlarından üstün olduğunu söylelemize bile gerek
yok sanıyorum.
smb.conf dosyasındaki her parametreyi swat ile yapılandırabilirsiniz.
Ancak bu parametreler hakkında bir bilginiz yok ise, Swat da işinize
pek yaramayacaktır. Onun için "Samba'nın Yapılandırılması"
bölümünü dikkatlice okumalı veya en azından swat ile yapılandırma
yapacağınız parametrelerin ne olduğuna bu bölümden bakmalısınız.
swat ile bir kere yapılandırma yaptığınız zaman, tüm yorum satırları
silinecek sadece, bölüm ve parametreler kalacaktır. Bu yüzden swat'ı
kullanıp beğenmeyecek olursanız eski dosyanızı korumak için bir
yedeğini almanızda fayda vardır.

Kullanımı
swat [-s smb.conf_dosyası] [-a]

Seçenekler
-s smb.conf_dosyası
Bu seçeneğin öntanımlı değeri derleme sırasında belirtilir. Eğer RH
Linux kullanıyorsanız, smb.conf dosyasının yeri /etc dizinidir.
Kendiniz derlemiş ve tanımlara dokunmamış iseniz,
/usr/local/Samba/lib dizinindedir. Ancak bazı durumlarda Samba

© Mustafa Başer & Görkem Çetin - 2007 201


22. swat: Grafik Arabirimli Yapılandırma Aracı

yapılandırma dosyasını öntanımlı dizin yerine başka yere koymak


isteyebilirsiniz. Eğer böye birşey yapmış iseniz, bu parametre ile
patikayı yazmalısınız.
-a: Bu parametretyi kullanmanız halinde, swat deneme statüsünde
çalışır. Yani her isteyen parolasız bağlantı kurar ve istediğini yapar.
Kullanacağınız sunucu, bir dosya sunucusu olarak çalışacaksa bu
seçeneği kesinlikle kullanmayın.

Kurulumu
Samba'yı derledikten sonra make install komutunu çalıştırınca,
swat ile ilgili dosya ve programlar ilgili yerlere kopyalanacaktır. swat
için öntanımlı dizinler şunlardır:
/usr/local/Samba/bin/swat
/usr/local/Samba/swat/images/
/usr/local/Samba/swat/help/
Red Hat kullanıyorsanız, swat çalıştırılabilir programını /usr/sbin
dizininde, swat'ın kullanacağı diğer dosyaları /usr/share/swat
dizininde bulabilirsiniz.

Çalıştırılması
swat, Samba'nın web'den ayarlamasının yapılabildiği bir sunucu
olduğuna göre çalışacağı bir port olacaktır. Bu port genelde 901
olarak önerilir. Ancak siz 1024'ten küçük ve boş olan başka bir
port'u da kullanabilirsiniz. 901 portunu kullanabilmek için
/etc/services dosyasına bunu eklemeniz gerekecektir (eğer yoksa).
Bunu yapmak için herhangi bir metin düzenleyici ile bu dosyayı açın
ve en alta
swat 901/tcp
satırını ekleyin. Eğer NIS kullanıyorsanız, NIS sunucusu eşleme
dosyasında değişiklik yapmalısınız.
şimdi de swat'ı inetd'den çalıştırabilmek için /etc/inetd.conf
dosyasına şu satırı ekleyelim.
swat stream tcp nowait.400 root
/usr/local/Samba/bin/swat swat
(yukarıdakilerin tek satırda olması gerektiğini unutmayın)
inetd'yi tekrar başlatmek için kill -1 SN komutunu kullanın. SN den
kastımız inetd'nin çalıştığı süreç numarası. Red Hat Linux
kullanıyorsanız

202 © Mustafa Başer & Görkem Çetin - 2007


Çalıştırılması

/etc/rc.d/init.d/inet restart
komutu işinizi görecektir.

Nasıl Kullanacaksınız?
swat'ı düzgün bir şekilde kurduysanız, herhangi bir web tarayıcısını
(örneğin Netscape) çalıştırın ve adres kısmına
http://localhost:901
yazın. Karşınıza hoş bir sayfa çıktı (mı?). şekil 22.1'de sizin için
aldığımız genel yapılandırma menüsünün ekran görüntüsünü
görüyorsunuz:

Şekil 22.1: swat sistem yöneticilerine, Samba'larını görsel ortamda hazırlamalarına imkan
tanıyor. smb.conf dosyasındaki tüm parametreler swat ile yapılandırılabilir.

© Mustafa Başer & Görkem Çetin - 2007 203


22. swat: Grafik Arabirimli Yapılandırma Aracı

Samba'yı yapılandırmak ne kadar da kolay görünüyor değil mi?


Şekil 22.2'de Samba'ya bağlantı yapan kullanıcıları izleyebileceğiniz
"View" menüsü görünüyor:

Şekil 22.2: swat ile Samba'ya yapılan bağlantıları, garfik ortamda izlemenin keyfini yaşayın.

Herhangi bir hizmete yapılan bağlantıyı koparmak istiyorsanız,


bağlantının sağ tarafında bulunan "Kill" düğmesine tıklamanız
yeterli olacaktır. Bunu yaparsanız bağlantısını kestiğiniz
kullanıcıdan kötü sözler işiteceğinizden emin olabilirsiniz.

204 © Mustafa Başer & Görkem Çetin - 2007


Beşinci Kısım: Diğer Samba Yapılandırma Araçları

Beşinci Kısım:
Diğer Samba Yapılandırma
Araçları

Samba'nın popüler olmasından sonra birçok kişi ve şirket tarafından, daha kolay
yapılandırılabilmesi için grafik arabirimli araçlar geliştirilmiştir. Bunlardan ilk olarak
tanıtmak istediğmiz GNOME ile birlikte gelen LinuxConf aracıdır. Yine bir GNOME
projesi olan gnosamba aracı, diğerlerine nazaran kullanması daha kolay ve
mantıklıdır. gnosamba yı LinuxConf bölümü içerisinde anlatacağız. Tanıtacağımız
diğer iki araç ise Windows üzerinde çalışmaktadır.
Bu kısımda tanıtacağımız araçların tam kullanımlarına yer vermeyeceğiz. Zaten buna
gerek te yoktur. Bu araçları kullanmak için smb.conf dosyasındaki parametrelerin
kullanımını bilmeniz gerekiyor. Her aracı tanıtırken, parametreleri tekrar yeniden
açıklamanın bir anlamı olmasa gerek.

© Mustafa Başer & Görkem Çetin - 2007 205


23. LinuxConf ve gnosamba

23. LinuxConf ve gnosamba

B u kitabı okumuş olanların gözüne çarptıkları ilginç birşey


vardır: Samba'yı Red Hat, SuSE ya da Mandrake Linux ile
kullanmak oldukça kolay. ışte bu kolaylıklardan birisi, tüm
Linux'unuzu yapılandırabileceğiniz LinuxConf aracıdır. Bir GNOME
uygulaması olan bu araç ile Samba'yı kolay bir şekilde
yapılandırabilirsiniz. gnosamba ise yine bir GNOME projesi olup,
Samba'nın kolay yapılandırmasına olanak tanıyan bir araçtır. Bu
araç ile ilgili izlenimlerimizi bölümün sonunda bulabilirsiniz.

LinuxConf
Red Hat 6.0 kullanıcılarının, LinuxConf'un yeni bir sürümünü
sistemlerine yüklemeleri gerekmektedir. Bu dağıtımla gelen
LinuxConf'un Samba yapılandırma aracı düzgün çalışmamaktadır.
Yapmanız gereken X-Window arabirimini root olarak çalıştırmak
olacaktır. şu yolu izleyin:
GNOME (Ayak)  System  LinuxConf
Karşınıza şekil-23.1'deki gibi bir pencere çıkacaktır. Samba
sunucunuzu yapılandırmak için "Samba File Server" sekmesine
gelin.

Genel Tanımlamalar
şekil 23.1'de de gördüğünüz gibi, ilk olarak yapılandırmanız gereken
"Defaults" sekmesidir. Bu sekme smb.conf dosyasındaki [global]
bölümünü yapılandırır. Birkaç parametre dışında herşey
düşünülmüş.
şimdi bazı seçenekleri açıklamaya çalışalım:

© Mustafa Başer & Görkem Çetin - 2007 207


23. LinuxConf ve gnosamba

Şekil 23.1: LinuxConf sadece Samba değil Linux'un diğer elemanlarınıda grafik arabirimde
yapılandırmanıza imkan tanır. Burada smb.cof dosyasının genel yapılandırma bölümünü
görüyorsunuz.

Synchronise Linux and SMB passwords


Samba sunucunuzdaki kullanıcı parolaları ile Linux parolalarının
eşlenik olmasını istiyorsanız "Synchronise linux and SMB
passwords" seçeneğini tıklayın. Bu sayede, Samba parolasını
değiştirmiş olan bir kullanıcının Linux parolası da değiştirilmiş olur,
ancak Linux parolasını değiştirirse, Samba parolası değişmeyecektir.
Server description
Buradaki kutucuğa istiyorsanız, sunucunuz ile ilgili bir açıklama
satırı yazabilirsiniz.
Workgroup
Samba sunucusunun bulunacağı çalışma gurubunu veya NT alanını
ifade eder. Bu kutucuğa hangi alanda bulunmak istiyorsanız onun

208 © Mustafa Başer & Görkem Çetin - 2007


LinuxConf

ismini yazınız. Öntanımlı olarak "Workgroup" dur. Biz bunu


"gezegen" alanına çevirdik.
Encrypted password required
Samba sunucunuzu Windows9x ve NT istemcileri ile birlikte
kullanıyorsanız bu seçeneği işaretlemek durumundasınız. Çünkü bu
tür istemciler parolaları ağ üzerinde şifreleyerek gönderirler. Samba
ise öntanımlı olarak düz metin parolaları kabul eder. Bu seçeği
işaretlemişseniz, kullanıcıları smbpasswd dosyasına eklemeniz
gerekir. Bununla ilgili geniş açıklamayı 14. bölüme ("'Encryption'
Nasıl?") bakınız.
Password server
Samba'nıza erişecek olan kullanıcılar başka bir sunucu tarafından
onaylanacaksa buraya o sunucunun NetBIOS ismini yazınız. Bu
durumda Samba'ya erişecek olan kullanıcılar yine de yerel Linux'ta
tanımlı olması gerekir. Sambanın ilerki sürümlerinde bunun
kaldırılması hedefleniyor.
Password program
Samba sunucusundaki parola değiştirilirken Linux parolası hangi
program yardımıyla değiştirilecekse bu programı yazıyorsunuz.
Domain master
Samba'nız yerel ağınızda ana tarayıcı olacaksa bu seçeneğin
işaretlenmesi gerekir.
Show all available printers
Linux'ta tanımlı tüm yazıcıların Samba istemcilerine paylaştırılması
sağlanır.

Kullanıcı Ev Dizinleri
Kullanıcıların ev dizinlerini yapılandırmak için "Default setup for
user's home" sekmesine tıklayabilirsiniz. Aslında burada
yapılandıracak pek fazla şey yok. Yapacağımız tek şey acümlesini
Türkçeleştirmek. şekil23.2'de pencere örneğini görüyorsunuz.
Elbetteki, öntanımlı olarak kullanıcıların ev dizinleri onların doğal
UNIX dizinleri olacaktır. Eğer Samba aracılığı ile erişildiğinde farklı
bir dizine bağlanmalaırnı istiyorsanız, bununla ilgili sayfa 25deki
açıklamayı okumanız gerekiyor. Görüğünüz gibi her ne kadar grafik
arabirim ile yapılandırma yapıyorsak ta bazı şeyleri bilmemiz
gerekiyor. Garifk arayüz demek herşey değildir. Bilmeyen insan bu
arabirimi de bilinçsizce kullanacaktır. Onun için Samba
yapılandırma seçeneklerini mutlaka okumanız gerekiyor. Bazen sizin
aklınıza bile gelmeyecek şeyleri, okuduktan sonra görüyorsunuz.

© Mustafa Başer & Görkem Çetin - 2007 209


23. LinuxConf ve gnosamba

Şekil 23.2: Kullanıcıların ev dizinlerini yapılandırmak oldukça kolay. Yapmanız gereken


boşlukları doldurup birkaç düğmeye tıklamak. Bulmaca gibi!

Diğer Dosya Paylaşımları


Yeni bir paylaşım açmak veya eski paylaşımları görmek için, "Disk
shares" sekmesine tıklamanız yeterli olacaktır. şekil 23.3'de
görüldüğü gibi daha önce açtığımız msOffice paylaşımı görünüyor.
Bunu düzenlemek için üzerine çift tıklamamız, yeni bir paylaşım
açmak için ise Add düğmesine basmamız yeterli.

Şekil 23.3: Daha önce açtığınız paylaşımların listesini buradan görebilirsiniz. Bir hizmeti
(paylaşımı) düzenlemek için üzerine çift tıklamak, yeni bir paylaşım açmak için "Add"
düğmesini kullanmak gerekiyor. Hadi bakalım bol keseden paylaşım açın!

Şimdi bazı önemli seçenekleri açıklayalım (şekil 23.4'e bakınız):

210 © Mustafa Başer & Görkem Çetin - 2007


LinuxConf

Share name
Buraya paylaşımın ismini yazmalısınız. Bizim örneğimizde
paylaşımın ismi "msOffice" dir. Yani istemci makinalar ağ
komşularında Samba sunucusuna tıklayacak olurlarsa "msOffice"
adında bir paylaşım göreceklerdir.
Comment/description
Paylaşım ile ilgili bir açıklama cümlesi yazabilirsiniz.
This share is enabled
Bu seçeneği işaretlemez iseniz, paylaşım açılmış olsa bile istemciler
göremeyeceklerdir. Paylaşımı aktif hale getirmek için mutlaka seçili
olması gerekiyor.

Şekil 23.4: Kutucukları doldurup ilgili düğmeleri tıkladınızmı, alın size bir paylaşım.

Directory to export
Hangi Linux dizinini paylaştıracaksanız, bu dizini yazmalısınız.
RedHat sürümlerinde /home/samba dizini en uygun gibi görünüyor.
Bu dizin içerisine bir dizin açmalı ve bu kutucuğa onu yazmalıyız.
Bizim örneğimizde /home/samba/msoffice dizini paylaştırılmış
görünüyor.

© Mustafa Başer & Görkem Çetin - 2007 211


23. LinuxConf ve gnosamba

Public access
Herkesin erişebilmesi için burayı seçiyoruz. Bu paylaşım herkesin
kullanacağı dosyaları içerdiğine göre bunu seçmemiz en mantıklısı
olacaktır.
Guest access only
Bunun seçilmesi ile buraya sadece "guest" erişimi sağlanmış olur.
Eğer public "access" seçeneği işaretli değilse, bunun seçilmesinin bir
etkisi yoktur.
writable
Bu dizinin yazılabilir olacağını gösteriyor. Biz bu seçeneği
işaretlemediğimize göre, busaı salt okunur olarak paylaştırılmış.
Browsable
Paylaşımın tarama listesinde görünmesini sağlar.
Diğer seçeneklerin anlamlarını "Samba Hizmet Yapılandırma
Seçenekleri" bölümündeki açıklamalardan öğrenebilirsiniz.

LinuxConf Web Arayüzü


LinuxConf hizmetlerini sadece yerel makinadan değil, aynı zamanda
uzaktan da erişebilirsiniz. Web aracılığı ile erişimi sağlamak
istiyorsanız, önce yerel LinuxConf aracını root olarak çalıştırın ve
şekil-23.5'te görüldüğü gibi "Config Misc Linuxconf network
access" yolunu takip edin. Daha sonra "Enable network access"
seçeneğini tıklayın. Hangi ağ veya IP'den erişilmesini istiyorsanız,
"network or host" kutucuğuna yazın. şekil-23.5'te 192.177.166.0
ağındaki tüm makinalardan erişimin sağlanacağı görünüyor.
ılgili bölümleri doldurduktan sonra "Act Cahnges" düğmesine
tıklayın ve size sorulan sorulara olumlu cevap verin.

212 © Mustafa Başer & Görkem Çetin - 2007


LinuxConf

Şekil- 23.5: LinuxConf ile, Linux'unuzu dünyanın her yerinden yapılandırabilirsiniz.

LinuxConf'a web'den ulaşmak Netscape'i açın ve adres kısmına şunu


yazın "http://<samba kurulu makinanın adresi>:98". Biz yerel
makinadan erişmek istediğimize göre http://localhost:98 yazdık.
Karşınıza çıkan ekranda "Start" düğmesini seçerseniz, bağlantı
kurmak için kullanıcı adı ve parolası sorulur. Buraya root
kullanıcısını ve parolasını yazınız. Daha sonra "Networking"
bağlantısına tıklayın. Ve son olarak gelen pencerede "Samba File
Server" bağlantısını seçin. Karşınıza şekil-23.6'daki gibi bir
pencerenin gelmesi gerekir.

© Mustafa Başer & Görkem Çetin - 2007 213


23. LinuxConf ve gnosamba

Şekil 23.6: LinuxConf aynı zamanda web sunucusudur. Böylelikle bir web tarayıcısı ile heryerden Linux'unuzu ve
Samba'nızı yapılandırabilirsiniz. Menülerin yerkeşim ve kullanımı yerel LinuxCon'a çok benziyor.

LinuxConf Metin Arayüzü


Eski Linux kullanıcılarının vazgeçemediği "kara ekran"da çalışma
keyfi LinuxConf'ada eklenmiş. LinuxConf'un metin arayüzü; web
tarayıcısından yapılandırma yapmayı sevmeyen sistem yöneticileri
için telnet bağlantısı ile veya X-Windows kurulu bulunmayan
sistemlerde kullanılmak için tasarlanmıştır. Bu arayüze erişmek için
metin ekranda linuxconf yazmanız yeterli olacaktır. X-Windows
altından metin arayüzünü kullanmak istiyorsanız
#linuxconf --text
yazmalısınız. şekil-23.7'de Samba'nın genel yapılandırma
seçeneklerinin metin arayüzdeki yansısını görüyorsunuz.

214 © Mustafa Başer & Görkem Çetin - 2007


gnosamba

Şekil- 23.7: LinuxConf'ta size göre birşey mutlaka vardır. ışte metin arayüzlü Samba yapılandırma
aracı.

gnosamba
gnosamba GNOME projesine dahil olan ve görsel yapılandırma
araçlarından en ümit vadedici olanıdır. Bu araç Red Hat 6.0 ile
birlikte gelmiyor. gnosamba'yı kullanmak iseteyenler şu adresten
inderebilirler:
http://www.open-systems.com/gtksamba.html
Red Hat Linux'un 6.0'ı takip eden sürümlerinde bu aracın olacağı
muhakkaktır. ıstiyorsanız herhanig bir rpm sitesinde bu racaın rpm
sürümünü de elde edebilirsiniz. Ssiteminize kurduktan sonra X-
Windows altından
#gnosamba
komutunu ile çalıştırabilirsiniz. ılk yapmanız gereken, yerel smb.conf
dosyasını açmak olacaktır. Bunun için "File  Open Configuration
File" yolunu izleyin. Ana pencereyi şekil-23.7'de görüyorsunuz.

© Mustafa Başer & Görkem Çetin - 2007 215


23. LinuxConf ve gnosamba

Şekil- 23.7: gnosamba gtk ile yazılmış, kullanımı oldukça esnek bir yapılandırma aracıdır.

Sol pencerede, genel yapılandırma ve hizmet bölümleri yer alırken,


sağ pencerede seçili hizmete ait parametreler ve bunların değerleri
görünmektedir.
Herhangi bir paylaşıma yeni bir parametre eklemek için, o hizmeti
seçin ve düğmesine tıklayın. gnosamba'nın en güzel
özelliklerinden birisi de parametrelerin gruplar halinde toplanmış
olmasıdır. şekil-23.8'de [global] bölümüne bir parametre eklemek
üzere olduğumuz görünüyor. Sol tarafta yapılandırma
yapabileceğiniz çeşitli gruplar görünüyor. Bunlardan bazıları
şunlardır:
Base Options
Temel yapılandırma seçenekleri. Bu seçenekler arasında,
çalışma grubu tanımlaması (workgroup), Sunucunun NetBIOS
ismini değiştirme (netbios), sanal sunucu adları (neybios
aliases) arayüzler (interfaces) gibi seçenekler bulunmaktadır.

216 © Mustafa Başer & Görkem Çetin - 2007


gnosamba

Şekil- 23.8: Parametrelerin gruplar halinde sunulması gnosamba'nın en çekici


özelliğidir.

Security Options
Bu grup, güvenliğe ait parametreleri içeriyor. Bunlardan
bazılarını; paylaşım düzeyi (security), şifrelenmiş parola
desteği (encrypt password), Samba parola dosyasının yeri
(smb passwd file) şeklinde sayabilirz.
Printing Options
Yazıcılarla ilgili genel tanımlamaları içeren parametrelerden
oluşur. Tüm yazıcıların ytüklenmesi için "load printers"
seçeneği, yerel UNIX yazıcı tanımlama dosyasının belirtilmesi
için "printcap name", paylaştırılan yazıcılara ait sürücülerin
istemcilere sağlanması için "printer driver file" gibi
seçeneklerden oluşmaktadır.
Diğer gruplarıda siz inceleyiniz.
Yukarıdaki gruplarda verdiğimiz parametreler sadece genel (global)
bölümüne eklenebilecek parametrelerdir. Birde bu gruplar altında
yerel parametreler (Local) ve tüm parametreleri görebileceğiniz "All"
sekmesi vardır.
Grupların tamamı pencereye sığmayabilir. Gruplar arasında gezinti
yapabilmek için düğmelerini kullanabilirsiniz.
Değişiklik yapmak istediğiniz parametre üzerine çift tıklamalısınız.
Bu sayede değişikliği yapabilmenizi sağlayacak yeni bir pencere

© Mustafa Başer & Görkem Çetin - 2007 217


23. LinuxConf ve gnosamba

açılacaktır. Her parametrenin yapılandırılması farklı olduğundan,


karşınıza gelecek pencerede farklı farklı olacaktır. Eğer parametreye
bir dizin atanacaksa, bir kutucuk çıkar ve sizden dizini yazmanızı
bekler. Paremetrenin alacağı değer "yes" veya "no" olursa, bu
takdirde pencere sizden "Yes" ve "No" düğmelerine tıklamanızı bekler.
Parametrenin alacağı değerler belli ise, bu seçenekler çıkar ve birini
(veya birkaçını) seçmenizi bekler. şekil-23.9'da "security"
parametresinin alabileceği değerler görünüyor.

Şekil- 23.9: Her seçeneğin kendine özgü alabileceği değerler vardır. gnosamba'da her seçenekte
bu seçeneğin alabileceği seçeneğe uygun bir pencere gelir.

Yeni bir Hizmetin Açılması


gnosamba ile yeni bir hizmetin açılması neredeyse çocuk oyuncağı.
şimdi adım adım yeni bir hizmetin açılmasını izleyelim:
Paylaşımı açmayı başlatmak üzere düğmesine tıklayın

Size sorulacak ilk şey paylaşımın adı olacaktır. Bu kutucuğa


paylaşımın adını yazdıktan sonra "Next" düğmesine tıklayınız.
Sonraki adımda, dolduracağınız iki alan vardır. Bunlardan birincisi,
Paylaşım hakkındaki yorum kutucuğu diğeri ise paylaşıma
açacağınız dizindir. Eğer dizinin yerini yazmaya üşeniyorsanız, sağ
tarafta bulunan "Browse ..." düğmesine tıklayarak yerini
gösterebilirsiniz, hatta yeni bir dizin bile açabilirsiniz. "Next"
düğmesine tıklayarak devam ediniz.
şimdi bu paylaşıma bağlantı yapacak olan kullanıcıların
denetleneceği ekran karşınıza geldi (şekil-23.10). Eğer "Allow all
users" seçeneğini işaretlerseniz, tüm kullanıcıların bu paylaşıma
erişmesine izin vermiş olursunuz. Biz örneğimizde, bu paylaşıma

218 © Mustafa Başer & Görkem Çetin - 2007


gnosamba

sadece belirli kişilerin bağlanmasını istiyoruz. Bu yüzden "Select


valid and invalid users" seçeneğini işaretledik.

Şekil- 23.10: Yeni açacağınız paylaşıma kullanıcıların erişimini denetlemek için tek
yapmanız gereken ilgili seçenekleri işaretlemek olacaktır.

Kullanıcı denetimlerinin yapıldığı ikinci pencerede ise, bu paylaşıma


misafir kullanıcıların ne şekilde erişeceğine dair seçenekler vardır.
Biz paylaşımı bu kullanıcılara kapattık (Do not allow guest access).
şimdi gnosamba'nın ayrıcalıklarından yararlanmaya başlıyoruz.
Yetkili ve yetkisiz kullanıcıları (veya grupları) belirtmek için
düğmesine tıklayarak /etc/passwd /etc/group dosyalarında tanımlı
kullanıcı ve grupları seçin. Erişi vereceğiniz kullanıcıları (ve grupları)
"Valid users", vermeyeceklerinizi "Invalid users" kutucuklarına
atınız. şekil-23.11'deki örneği incelerseniz, bazı isimlerin önünde
"@" karekterinin lduğunu göreceksiniz. Bu karakter ismin bir grubu
belirttiğini

© Mustafa Başer & Görkem Çetin - 2007 219


23. LinuxConf ve gnosamba

Şekil- 23.11: Kullanıcı ve grupları yazmak zorunda değilsiniz: tıklayın ve seçin.

Kullanıcıları balirttikten sonra, şimdi de hangi makinaların bu


paylaşıma erişeceğini belirtelim. şekil-23.12'de gördüğünüz gibi bu
paylaşıma 192.166.43.0 ağındaki tüm makinalardan
erişilebilecekken, 192.166.42.0 ağındaki hiçbir makina
erişemeyecektir. "Allow all hosts" seçeneğini tıklarsanız dünyadaki
tüm makinalara bu paylaşıma erişme izni vermiş olursunuz.

Şekil- 23.12: Paylaşıma erişebilecek makinalar sol kutucukta, rişemeyecekler ise sağ
kutucuktadır.

Sonraki adımda paylaşıma kullanıcıların hangi izinlerle erişeceğini


ayarlayabileceğiniz bir pencere gelir. Bu pencerede birkaç seçenek
vardır (şekil-23.13). Bunları sırasıyla şu şekilde açıklayabiliriz:

220 © Mustafa Başer & Görkem Çetin - 2007


gnosamba

Şekil- 23.13: Sonraki adımda kavuşacağınız pencere, buradaki seçiminize bağlı.

Make service read only


Bu seçeneği işaretlerseniz, paylaşımı salt okunur olarak açmış
olursunuz.
Default to read only, then specify access by user
Paylaşım öntanımlı olarak salt okunur olarak çaılır, daha
sonra hangi kullanıcıların yazma izni olacağı yapılandırılır.
Default to read/write, then specify access by user
Hizmet normal olarak açılır ve bir sonraki adımda hangi
kullanıcıların yazbileceği hangilerinin yazamayacağı ayarlanır.
Let Unix access restrictions alone access control
Paylaşıma kimlerin yazacağı kimlerin yazamayacağı, UNIX
izinleri ile belirlenir.
Son olarak tarama ve bağlantı ile ilgili birkaç seçeneği
ayarladığımızda paylaşımımız hazır olacaktır. Paylaşımın tarama
listesine görünmesini istiyorsanız "Make service browseable"
seçeneğini işaretleyin. Eğer nokta ile başlayan dosyaların istemciler
tarafından görünmesini istemiyorsanız "Hide hiden (dot) files"
seçeneğini işaretlemelisiniz. Bu hizmete yapılcak maksimum bağlantı
sayısını yazmaz iseniz, bağlantı sayısına sınırlama koymamaış
olursunuz. Şekil-23.14'te bu paylaşıma bir anda en fazla 10 kişinin
erişebileceği görünüyor.

© Mustafa Başer & Görkem Çetin - 2007 221


23. LinuxConf ve gnosamba

Şekil- 23.14: Son olarak tarama ve bağlantılarla ilgili seçenekleri işaretleyin.

Paylaşımın hazır olması için dosyayı kaydetmeyi ve Samba'yı yeniden


başlatmayı unutmayın.

222 © Mustafa Başer & Görkem Çetin - 2007


24. bbSAT

24. bbSAT

b
bSAT aracını http://www.samba.org adresinden
indirebileceğiniz gibi, ana sayfası olan http://www.bb-
online.de adresinden de indirebilirsiniz. Krumak için arişivi bir
dizine açmanız yeterli olacaktır. smb.conf dosyanızı yerel makinaya
aldıktan sonra (veya Samba ile paylaştırılmış bir dizinde de olabilir)
File  Open yolunu takip ederek yapılandırma dosyanızı açın (Eğer
yeni bir yapılandırma dosyası hazırlayacaksanız, File  New younu
izleyebilirsiniz). Biz yine yukarıdaki dosyayı açtık. Açtığınızda
karşınıza Şekil 24.1'deki gibi bir pencere çıkacaktır:

Şekil 24.1: bbSAT Samba'yı yapılandırmada kullanılabilecek grafik arabirimli bir araç. Henüz
geliştirilmesi tamamlanmamış, buna rağmen çekiciliği çok fazla. Linux'ta mı, yoksa
Windows'ta birşeyler mi yapılandırıyorsunuz, ayırt etmek çok zor.

© Mustafa Başer & Görkem Çetin - 2007 223


24. bbSAT

Var olan bir hizmeti yapılandırmak istiyorsanız, üzerine çift


tıklamanız yeterli olacaktır. şekil 24.2'de MSOffice hizmeti üzerine
çift tıklandığında açılan pencere görünüyor:

Şekil 24.2: Sağ taraftaki düğmeler henüz çalışmıyor. Ancak yine de denemeye değer.
Herşeyi görerek yapmanın zevkini bbSAT ile tadabilirsiniz.

Şimdi Temel (Basics) sekmesindeki seçenekleri açıklayalım:


Service name
Buraya paylaşım adını yazacağız.
Path
Paylaştırılacak dizini yazıyoruz
Comment
Paylaşım (hizmet) ile ilgili bir açıklama satırı
Username
Eğer bu hizmetin özel bir kullanıcı veya grup tarafından
kullanmasını istiyorsanız, bu kutucuğa aralarında boşluk
bırakarak yazabilirsiniz. Kutucuğun sağ tarafında bir
düğme görünüyor. şu anda bu fonksiyon henüz
uygulamaya konulmamış, konulduğu zaman ilgili
sunucudaki kullanıcı ve grupları buradan seçebileceksiniz.
Create mask
Bu paylaşımda bir dosya veya dizin açıldığında hangi UNIX
hakları ile açılacaksa onu belirtiyorsunuz. Kullanıcı, Grup
ve diğer insanların dizin ve dosya oluşturma hakları farklı
farklı olabilmektedir. Pencerenin sağında bu paylaşıma
yapılacak olan erişim denetimleri var. Her bir seçeneğin ne
anlama geldiğini "Samba Hizmet Yapılandırma Seçenekleri"
konusuna bakınız.
Yazıcılar (Printers) sekmesi sadece yazıcılar için geçerlidir. Burayı
atlıyoruz.

224 © Mustafa Başer & Görkem Çetin - 2007


24. bbSAT

Kullanıcılar/Kısıtlamalar (Users/Restrictions) sekmesine geldiğinizde


Şekil 24.3'tekine benzer bir pencereye kavuşacaksınız:

Şekil 24.3: Kullanıcı izinlerini de yapılandırmak oldukça kolay. Ah bir de sağ taraftaki
düğmeler çalışsa da elimizle yazma derdinden kurtulsak. Belki siz bu satırları okurken
programın yeni sürümü ile birlikte çalışıyor olacaktır.

Her bir seçeneğin kullanımı ile ilgili bilgileri "Samba Hizmet


Yapılandırma Seçenekleri" bölümünü okuyabilirsiniz. Sağdaki
düğmeler şimdilik çalışmıyor. Çalıştığında herhalde daha kullanışlı
bir araç olacaktır.
Diğer sekmeleri de siz kendizni inceleyiniz.
Yeni bir paylaşım oluşturmak istiyorsanız Configure  Selection
 New yolunu izleyin. Son olarak yapmanız gereken File  Save ile
dosyayı kaydedip Linux'a taşımaktır. Samba'yı yeniden başlatmayı
da unutmuyırsunuz.

© Mustafa Başer & Görkem Çetin - 2007 225


25. smbedit

25. smbedit

s mbedit'de bbSAT gibi Windows 95/98/NT üzerinde çalışan bir


başka araçtır. Bu programı şu adresten indirebilirsiniz:
ftp://sunsite.bilkent.edu.tr/samba/smbedit
ıki adet dosya indirmeniz gerekiyor, birisi exe uzantılı kütüphane
dosyası diğeri zip uzantılı arşiv dosyasıdır. Öncelikle kütüphane
dosyasını kurmanız gerekiyor. Kütüphaneler kurulduktan sonra
arşivi istediğiniz bir dizine açıp, smbedit.exe programını
çalıştırabilrsiniz.
Kullanımı bbSAT'a çok benzemektedir. Windows makinaya
kopayaladığınız yapılandırma dosyasını File  Open yolunu izleyerek
açabililirken, yeni bir samb.conf dosyası oluşturmak için File  New
diyebilirsiniz. Biz yine aynı dosyayı açmayı uygun bulduk.
Açtığımızda şekil 25.1'deki penceremiz oldu.
şekil 25.1'de gördüğünüz gibi, dosyayı eliniz ile sağ taraftan
düzenleyebilirsiniz. Düzenlemeye başlamadan önce, dosyamızı
düzenlenebilir hale getirmek gerekiyor, bunun için araç
çubuğundaki (Enable Edit) düğmesine tıklayın. Görsel
yapılandırma penceresini açmak üzere, sol taraftaki pencereden,
hizmet üzerine çift tıklayabilirsiniz. msOffice paylaşımını şekil
25.2'de görüyorsunuz:

© Mustafa Başer & Görkem Çetin - 2007 227


25. smbedit

Şekil 25.1: smbedit programı ile hem grafik arabirimde yapılandırma yapabilir hemde elinizle
yazarak yapabilirsiniz.

Şekil 25.3: smbedit ile siz izin verirseniz, Linux yazıcılarınıza herkes çıktı
gönderebilir.

Hangi seçeneği yapılandırmak istiyorsanız "Parameter"


penceresinden seçin ve bu seçenek ile ilgili yapılandırmayı "Settings
for ....." kutucuğundan yapın. Eğer "Yes" veya "No" gibi bir değer
alabiliyor ise bunu seçebilirsiniz. Almıyorsa yine elinizle yazmak

228 © Mustafa Başer & Görkem Çetin - 2007


25. smbedit

zorundasınız. Aşağıda yazıcılar için yapılandırma penceresini


görüyorsunuz.

Şekil 25.2: Daha önce paylaşıma açtığımız MsOffice'i yapılandırabilriz.

Dosyayı kaydettikten sonra Linux'a taşıyıp, Samba'yı yeniden


başlatmayı unutmayın.

© Mustafa Başer & Görkem Çetin - 2007 229


Altıncı Kısım: ıstemciler ıle Çalışmak

Altıncı Kısım:
ıstemciler ıle Çalışmak

Samba sunucusuna bağlanmak için sisteminize Microsoft Ağları için ıstemci


yüklemelisiniz. ıletişim prtokolü (kuralı) olarak mutlaka TCP/IP kullanmanız
gerekiyor. IP adresi olarak ta Samba'nın bulunduğu alt ağdaki bir adresi kullanmanızı
tavsiye ediyoruz. Biz bu bölümde DOS, Windows 3.x ve Windows 95/98 için nasıl
bağlantı kurabileceğinizi açıkladık. Windows NT Server ve Workstation ile bağlantı
kurmak için ise yapmanız gerekenler Winodws 95/98 ile benzer olduğu için açıklama
gereği duymadık. Diğer işletim sistemleri ile bağlantının nasıl kurulacağını
açıklamadık, çünkü ülkemizde çok yaygın olarak kullanılmıyorlar.

© Mustafa Başer & Görkem Çetin - 2007 231


26. DOS ıstemci ile Bağlanmak

26. DOS ıstemci ile Bağlanmak

B ir sunucuya DOS istemci ile bağlanmak kuşkusuz çok


önemlidir. Ağınızdaki CD-ROM'u olmayan makinalara
Windows 95/98/NT kuracaksanız, bu makinalardan DOS ile
Samba'ya bağlanıp, paylaştırılmış dosyaları kullanabilirsiniz. Hatta,
eğer Windows 95/98 işletim sistemlerini uzaktan önyükleme
(remoote boot) ile Samba'dan çalıştıracaksanız, DOS bağlantısına
yine ihtiyacınız olacaktır.
DOS bağlantısı kurabilmek için öncelikle DOS istemciye ihtiyacınız
vardır. ıstemci programları bulabilmek için internet' girin, tarayıcının
(Netscape, KFM gibi) adres kısmına http://www.altavista.com ve
karşınıza çıkan kutucuğun içine "+msclient +DOS" yazın (tırnaklar
yok). ıhtiyacınız olan iki adet dosyayı (DISK3-1.EXE ve DISK3-
2.EXE) dosyalarını bulduğunuz adreslerden indirin. Bir disketi
format a:/s ile biçimleyin. Aynı zamanda bu diskete sabit diskinizi
biçimlemek için format.com dsoyasını kopyalayın (copy
c:\windows\command \format.com a:). Dosyaların ikisini de bu
diskete (iki dosya, bir HD diskete sığabilmektedir) kopyalayın ve
Samba'ya bağlantı kuracğınız makinayı gidip bu disket ile açın. Sabit
diskinizi hem biçimlemek hem de sistem dosyalarını yüklemek için
format c:/s/q ile biçimleyin. Sabit diskte mkdir c:\netsetup ile
dizin oluşturup, dosyaları copy DISK*.* c:\netsetup komutu ile
sabit diske kopyalayın daha sonra bu dizine gidip her iki dosyayı
(diski) da çalıştırarak açın. Birinci disk (DISK3-1) temel istemci ve
sürücüleri, ikinci disk (DISK3-2) ise DOS için TCP/IP desteğini
içermektedir. ıkinci diskteki bazı dosyalar ile birinci diskteki dosyalar
aynıdır. Size üzerine yazılsın mı diye sorduğunda "yes" ile cevap
verin. Bu işlemleri yaptıktan sonra disketi çıkartın ve makinanızı
kapatıp açın, şimdi bilgisayarınız sabit diskten açılmıştır. Eğer
makinanızı sabit diskten başlatmaz iseniz, setup programı
çalıştırıldığında disket sürücünüze boot diskini koymanızı ister.
Artık kuruluma başlayabiliriz. şimdi adım adım açıklamalarımızı
yapalım:

© Mustafa Başer & Görkem Çetin - 2007 233


26. DOS ıstemci ile Bağlanmak

1. Kurulumu başlatmak için c:\netsetup\setup yazın. Karşınıza


mavi bir ekran çıkacaktır. Bu ekran kuruluma başlamak için ön
bilgileri içerir. Devam etmek istiyorsanız "ENTER" tuşuna basın.
ıngilizce biliyorsanız "F1" tuşu ile kurulum için yardım
alabilirsiniz. Bundan sonraki her basamakta, "F1" tuşu ile o anda
yapacaklarınız ile ilgili yardımlara ulaşabilirsiniz. Mavi ekranı
sevmiyorsanız (örneğin ben, çok fazla Microsoft kokuyor) "F5"
tuşu ile rengi kaldırabilirsiniz.
2. şimdi size hangi dizine kurmak istediğinizi soruyor. Öntanımlı
olarak c:\net dizini gelecektir. isterseniz kabul edin ve "ENTER" ile
devam edin. Yolu beğenmediyseniz silin ve değiştirin.
3. setup diskinizde biraz inceleme yapacaktır. Sisteminize bağlı
olarak bu adım birkaç dakika sürebilir. Sonunda ağ kartınızı
seçeceğiniz bir ekran karşınıza çıkacacaktır. Eğer setup kartınızı
tanımışsa (örneğin ISA ne200 uyumlu) bu adım geçilecektir.
Ancak bizim örneğimizde olduğu gibi, setup ın tanıyamadığı bir
karta sahipseniz, karşınıza bir liste çıkacaktır. Ağ kartınız
lisetedekilerinden birisi ile uyuşuyorsa, "ok" tuşları ile üzerine
gidip "ENTER" tuşuna basabilirsiniz. Listede yoksa, ki çoğu
zaman bulunmaz, "Network adapter not shown on list below ..."
seçeneğini seçip "ENTER" tuşuna basın. ışte Şekil 26.1'de böyle
bir pencere görünüyor:

Şekil 26.1: Önce Ağ kartınızı seçmelisiniz. Büyük bir ihtimalle ağ kartınıza ait disketi
kullanacaksınız.

4. şimdi size, ağ kartınızın yapılandırılması için gerekli olan inf


dosyasının ve sürücülerin yeri sorulmaktadır. Bilgisayarımı

234 © Mustafa Başer & Görkem Çetin - 2007


26. DOS ıstemci ile Bağlanmak

alırken, ağ kartıma ait bir disket vermişlerdi. O disketi daha


önceden inceledim ve "Microsoft Client for DOS" sürücülerinin
"a:\msclient" dizininde olduğunu görmüştüm. şimdi buraya bu
dizini yazıyorum ve "ENTER" tuşuna basıyorum. Önemli Not:
"Setup" programı ağ sürücülerini en son yüklediği için,
bilgisayarınızı kapatıp tekrar açmanızı söyleyene kadar diskti
çıkarmayın.
5. Karşıma çıkan listeden hangi ağ kartına sahip olduğumu
seçiyorum (çoğu zaman tek bir seçenekle karşılaşırsınız) ve tekrar
"ENTER" tuşuna basıyorum. Size gelen bilgilendirmede optimize
edilip edilmeyeceğini soruyor, yine "ENTER" ile devam edin.
6. şimdi bir isim soruluyor, buraya Linux'unuzda tanımlı bir
kullanıcı ismi yazınız. Bu isim aynı zamanda, bilgisayarınızın
Microsoft ağlarında NetBIOS ismi olarakda kullanılacaktır, ancak
bunu değiştirme şansına da sahipsiniz. Kullanıcı ismini yazarken
üstte görünen karakterlerden birisini içermemesine dikkat
etmelisiniz. şekil 26.2'de sizler için aldığımız pencere görünüyor.
şimdi yine "ENTER" tuşuna basın.

Şekil 26.2: Kullanıcı ismi yazarken, garip karakterleri kullanmayın. Bu isim aynı
zamanda makinanızın NetBIOS ismi de olacak.

7. şimdiki penceremiz tüm yapılandırmamızı listelemektedir. Burada


birçok değişiklik yapacağız. ılk yapacağımız işlem, iletişim
protokolü olarak TCP/IP'yi kullanmak olacaktır. Bunun için, "ok"
tuşları ile "Change Network Configuration" seçeneğine gelin ve
"ENTER" ile devam edin.
8. MSClient öntanımlı iletişim protokolü olarak IPX kullanır. Ne
garip, MS bile kendi NetBEUI'sini kullanmıyor! Bu tip pencerelerle
karşılaştığınızda paneller arası geçişi "Tab" tuşu ile yaparsınız.
şimdi üst panele geçin ve ağ kartınıza bağlanmış olan "NWLink
IPX Compatible Transport" protokolü üzerine gelin. Tekrar alt

© Mustafa Başer & Görkem Çetin - 2007 235


26. DOS ıstemci ile Bağlanmak

panele geçerek "Remove" seçeneğine gelin ki bu protokolü


kaldıralım. "ENTER" tuşuna basmadan önce bulunmanız gereken
konum şekil 26.3'te görünüyor.

Şekil 26.3: IPX protokolünü kaldıracağız.

9. Varolan protokolü kaldırdığınızda size hangi protokolü


kullanacağını soracaktır. Gelen pencerede " Microsoft TCP/IP"
seçeneği üzerine "ok" tuşları ile gelip devam edin.
10.şimdi TCP/IP yapılandırmamızı yapalım. Tekrar üst panele geçip
TCP/IP protokolü üzerine gelin ve alt panele geçin. Burada
"Change Settings" seçeneği üzerine gelip "ENTER" tuşuna basın.
"Disable Automatic Configuration" seçeneği öntanımlı olarak "0"
dır. Yani TCP/IP yapılandırmasını DHCP kanalı ile yapacaktır. Biz
kendi elimizle yapmak istediğimizden bunu "1" yaptık. Her bir
seçeneğe gelip üzerinde "ENTER" tuşuna basarak ayarlamalarınızı
yapın. Yapılandırmalarınızda adresleri yazarken aralarına nokta
(.) yerine bir adet boşluk bırakmanız gerektiğini unutmayın.
Herşey bittikten sonra "The listed options are correct." seçeneğine
gelip devam edin. şekil 26.4'te bizim ağımıza uygun yapılandırma
görünüyor:

236 © Mustafa Başer & Görkem Çetin - 2007


26. DOS ıstemci ile Bağlanmak

Şekil 26.4: TCP/IP yapılandırmanızı yaparken bölümler arasına nokta koymuyorsunuz,


yerine bir boşluk bırakıyorsunuz. Eğer DHCP'niz var ise "Disable Automatic
Configuration" seçeneğinin değerini sıfır (0) yapın ve gerisine dokunmayın.

11.şimdi Çalışma grubumuz ile ilgili değişiklikleri yapalım "Change


Names" seçeneğine gelip "ENTER" tuşuna basın. Her bir
seçeneğin üzerne "ok" tuşları ile gelip "ENTER" tuşuna basarak
değişiklik yapabilirsiniz. Biz kullanıcı adı ile bilgisayar adını aynı
bıraktık. Önemli olan "Change Workgroup Name" (çalışma grubu)
ile "Change Domain Name" (alan adı) aynı olmasıdır. şekil-
26.5'de örenk pencereyi inceleyin.

Şekil 26.5: Yapılandırmanızda dikket edeceğiniz en önemli noktalardan birisi "Workgroup


Name" ile "Domain Name" in aynı olması.

12.Eğer, bir denetçinin bulunduğu NT alanına girecekseniz (Samba


da denetliyor olabilir) ve giriş betiklerini çalıştıracaksanız;
"Change Setup Options" seçeneğine gelip "Change Logon

© Mustafa Başer & Görkem Çetin - 2007 237


26. DOS ıstemci ile Bağlanmak

Validation" yapılandırmanızı "Do Not Logon to Domain." den


"Logon to Domain" değiştirin. Bu gibi durumlarda bazen belleğiniz
yeterli olmayabilir ve config.sys dosyasında device=himem.sys ve
LH=DOS kullanmanız gerekebilir. Son olarak "ENTER" tuşuna
basın ve kurulumunuzu sonlandırın. Bilgisayarınızı tekrar
açtığınızda size kullanıcı ismi soracak. Eğer öncekini kullanmak
istiyorsanız "ENTER" ile devam edin. Sonra bir parola soracak,
Linux ve/veya Samba) parolanızı yazın. Parolanızın diske
kaydedip dilmeyeceğini sorar "Y" tuşuna basın ve tekrar
parolanızı yazın. Son olarak, Samba'daki bir paylaşımı yerel disk
olarak bindirin, bunun için;
net use <disk_harfi>: \\<sunucu_adi>\<paylaşım>
kullanabilirsiniz. Örneğin, NetBIOS ismi sambasrv olan bir
sunucudaki Win95 paylaşımının F: diskine bağlamak için:
net use f: \\sambasrv\win95
yazabilirsiniz. Buradan yerel makinaya Windows
kurabilirsiniz.

238 © Mustafa Başer & Görkem Çetin - 2007


27. Windows 95/98 istemcileri ile Bağlanmak:

27. Windows 95/98 istemcileri ile


Bağlanmak:

B u sistemler ile bağlantı kurmak aynen DOS istemciler ile


bağlantı kurmaya banzer. Yapılacak olan şeyler temelde
aynıdır. Adım adım nasıl bağlantı kuracağınızı açıklayalım:
1. ılk yapmanız gereken şey, denetim masasını açıp "ağ" simgesine
tıklama olacaktır. Yolu "Başlat  Ayarlar  Denetim Masası 
Ağ"
2. İlk olarak bir ağ kartı tanıtalım. "Ekle" düğmesine tıklayın ve
"Bağdaştırıcı" yı seçip "Ekle" ye tıklayın. şimdi sizden hangi ağ
kartına sahip olduğunuzu soracaktır. Eğer listedekilerden birisi
size uyuyorsa onu seçin, yoksa "Disketi var" düğmesine tıklayın
ve disketinizi sürücüye takın. Eğer ağ kartınıza ait Windows
95/98 sürcülerinin olduğu yeri biliyorsanız, bu yolu yazın.
Bilmiyorsanız, "Gözat" ile disketi tarayarak bulun. Genelde
a:\win95 yonunda bulunurlar. (NOT: Çoğu ağ kartlarının win95
sürücüleri ile çalışmadığı, bunun yerine msclient sürücüleri ile
çalıştığını gördük. Eğer ağ kartınız win95 sürücüleri ile
çalışmayacak olursa, bu ağ kartını kaldırın ve bilgisayarınızı
yeniden başlatın. Kartınız PNP ise, Windows otomatik olarak
başalangıçta tanıyabilir ve sizden disket isteyebilir, burasını da
olumsuz yanıtlayın ve herhangi bir sürücü yüklemesine engel
olun, ve msclient sürücülerini yükleyin.) Karşınıza gelen listede
size uygun olanı seçin. Bizde Şekil 27.1'deki pencere geldi.

© Mustafa Başer & Görkem Çetin - 2007 239


27. Windows 95/98 istemcileri ile Bağlanmak:

Şekil 27.1: Windows 95'e bir ağ kartı tanıtacaksanız, çoğu zaman o karta ait bir diskete
ihtiyacınız olacaktır.

3. "Tamam" dediğiniz zaman Windows'unuz kendi kafasına göre


istemci ve protokolleri yüklemek isteyebilir. Eğer böye bir durum
var ise, "NetWare Ağları için ıstemci" yi seçip, "Kaldır" düğmesi ile
iptal edebilirsiniz. Aynı şekilde TCP/IP hariç diğer protokolleride
kaldırın. Biz hiçbirşey gelmediğini varsayıp sıfırdan anlatmaya
çalışacağız. Tekrar "Ekle" deyin ve Şekil 27.2'deki gibi "iletişim
kuralları"nı (protokoller) seçin.

Şekil 28.2: TCP/IP protokolünü yüklemek üzere iletişim kuralları üzerine tıklayınız.

4. Tekrar "Ekle"ye tıklayıp Şekil 27.3'te gördüğünüz gibi, sağ


panelden "Microsoft" sol panelden "Microsoft TCP/IP" yi seçin ve
"Tamam" deyin

240 © Mustafa Başer & Görkem Çetin - 2007


27. Windows 95/98 istemcileri ile Bağlanmak:

Şekil 27.3: Samba'ya bağlantı yapmak için sadece TCP/IP protokolü (iletişim kuralı)
yeterlidir.

5. TCP/IP üzerine gelin ve "Özellikler" düğmesine tıklayın. Karşınıza


gelen pencerede "Bir IP adresi belirt" seçeneğini seçin. Şekil
27.4'te bizim ağımıza uyan IP yapılandırması görünüyor.

© Mustafa Başer & Görkem Çetin - 2007 241


27. Windows 95/98 istemcileri ile Bağlanmak:

Şekil 26.4: TCP/IP Özelliklerine yazılacak adres, bulunduğunuz ağ ile uyumlu olmalıdır.

6. Eğer WINS sunucunuz var ise (Samba'yı bu şekilde


yapılandırabilirsiniz) ve kullanmak istiyorsanız, "WINS
yapılandırması" sekmesine tıklayın ve "WINS çözünürlüğünü
devreye sok" seçeneğini tıklayarak WINS sunucunuzun IP
adresini yazın. Samba'yı WINS sunucusu olarak
kullanabileceğinizi biliyorsunuz.
7. Makinanız internete çıkacaksa, "DNS yapılandırması" ve "Ağ
geçidi" sekmelerine gelerek uygun bir şekilde yapılandırmanızı
yapın.
8. şimdi de "Microsoft Ağları için ıstemci" yükleyelim. Bunun için
Ekle  ıstemci  Ekle  (Microsoft, Microsoft Ağları için ıstemci)
yolunu takip edebilirsiniz. Bu pencereyi Şekil 27.5'te
görüyorsunuz. Son olarak tamama tıklayın.

242 © Mustafa Başer & Görkem Çetin - 2007


27. Windows 95/98 istemcileri ile Bağlanmak:

Şekil 27.5: Samba'ya bağlantı kurabilmek için bir de istemci yüklemeniz gerekiyor, bu
istemci elbetteki "Microsoft Ağları için ıstemci" olacaktır.

9. Ağ istemcisini yapılandırmak üzere, "Microsoft Ağları için ıstemci"


üstüne gelin ve "Özellikler" düğmesine tıklayın. Biz Sambayı NT
alanı için denetçi olarak kullanıyoruz ve giriş betikleri
çalıştırıyoruz. Bu bakımdan "Windows Etki Alanında Oturum
Başlat" seçeneğini işaretledik ve en altta bulunan "Oturum aç ve
ağ bağlantılarını yap"ı işaretledik. Alan denetçisi tarafından
denetlenmek istemeseniz bile, "Windows NT Etki Alanı"
kutucuğuna Samba'nın alanını (çalışma grubunu) yazınız ve
"Tamam" düğmesine tıklayınız.
10.şimdi de "Tanımlama" sekmesine gelin. Buradaki
yapılandırmanızı şekil 27.6'da göründüğü gibi, kendi ağınıza
uygun düşecek şekilde doldurun.

© Mustafa Başer & Görkem Çetin - 2007 243


27. Windows 95/98 istemcileri ile Bağlanmak:

Şekil 27.6: Samba'dan yararlanmak için son yapmanız gereken, bir bilgisayar adı (atın
kafadan), Samba'nızın "workgroup" seçeneği ile belirlediğiniz çalışma gurubunu ve
istiyorsanız, bilgisayarınıza ait bir tanım cümlesi yazınız.

11.Son pencereniz aşağıdakine benzemelidir. Yukarıda


söylediklerimizin tamamını yaptıysanız, "Tamam" deyip
yapılandırmanızı sonlandırabilirsiniz.
12.Bilgisayarınız kapatıp açtığınızda alan girişi ile ilgili bir pencere
gelecektir. Bu pencerede ilgili kutucukları doğru bir şekilde
giriniz. şekil 27.7'de sizler için aldığımız pencere görünüyor.

Şekil 27.7: Samba'nın denetlediği "gezegen" alanına mbaser kullanıcısı parolasını


yazarak girmeye hazırlanıyor.

244 © Mustafa Başer & Görkem Çetin - 2007


27. Windows 95/98 istemcileri ile Bağlanmak:

Linux'ta tanımlı bir kullanıcı adı ve şifresi ile Windows 95 makinaya


giriş yaptıysanız, "Ağ komşuları"nda, Samba'yı görüyor olmanız
gerekir. Eğer bağlantı yapmaya çalıştığınızda, her seferinde bir
parola soruyorsa, Samba'nız şifrelenmiş ("encrypt" edilmiş)
parolaları kabul etmiyordur. Bu şekilde yapılandırabilmek için sayfa
153'deki "Encryption Nasıl?" konusunu okumalısınız.

© Mustafa Başer & Görkem Çetin - 2007 245


EK: Sambanın Hızlı Yapılandırılması

EK: Sambanın Hızlı Yapılandırılması

B u bölüm, Samba'ya çabuk bir giriş yapmak isteyenler içindir.


Özellikle kitabın genişliğine bakıp da gözü korkanlara biçilmiş
kaftandır. Sadece yarım saat içinde, tamamen çalışan bir
Samba sistemine sahip olacaksınız.
SMB protokolü Windows 3.11, 95, 98 ve NT makinalarla Linux'ların
disk ve yazıcı paylaşımı yapmasına olanak verir. Samba yardımıyla,
genel olarak
1. Windows makinalar Linux diskini paylaşabilir,
2. Linux makinalar Windows diskini paylaşabilir,
3. Linux yazıcıları Windows ile paylaştırabilir,
4. Windows yazıcıları Linux ile paylaştırabilirsiniz.
Kitap boyunca daha geniş bilgiyi ilgili konulardan elde edebilirsiniz.

1. Adım: Samba'nın kurulumu


Samba'yı alın ve kurun. Eğer Mandrake, Red Hat, Slackware,
Caldera ya da SuSE kullanıyorsanız öntanımlı olarak Samba
sistemde bulunacaktır.

2. Adım: smbd ve nmbd'nin çalıştırılması


smbd ve nmbd programlarının çalıştığını kontrol edin.

© Mustafa Başer & Görkem Çetin - 2007 247


EK: Sambanın Hızlı Yapılandırılması

# /etc/rc.d/init.d/smb restart
Restarting SMB services: Shutting down SMB services: [ OK ]
Starting smbd [ OK ]
Starting nmbd [ OK ]
done

3. Adım: Samba yapılandırma dosyasını kontrol


edin.
/etc dizini altında smb.conf Samba yapılandırma dosyasının
bulunduğunu kontrol edin:
# ls -al /etc/smb.conf
-rw-r--r-- 1 root root 10105 May 17 10:51 /etc/smb.conf

4. Adım: smb.conf dosyasını oluşturun.


ınce ayrıntılarla burada uğraşmayacağız. Kitabın daha ilerideki
bölümlerinde smb.conf dosyasının içindeki kısımlar ayrıntılarıyla ele
alınacaktır. Dosyadaki her bölüm bir bölüm başlığı ile (global,
homes, printers, vb) başlar.
Global bölümü Samba'nın kaynaklarını açması yönünde kullanacağı
genel parametreleri içerir. homes bölümü, Linux sistemdeki
kullanıcıların, bir Windows makinadan kendi disklerine ulaşmasını
sağlar. printers ise Linux yazıcılarının ağ üzerindeki Windows'lar
tarafından kullanılmasına olanak verir.
Aşağıdaki örnek smb.conf dosyası kullanıcıların Linux'a uzaktan
Windows'tan erişmelerini sağlar (bir başka deyişle /home dizinlerine
ulaşmak için kullanılır), ayrıca tüm kullanıcıların ortak
kullanabileceği geçici bir disk alanını kullanıma açar. Bu işlemlerin
yapılabilmesi için Windows ve Linux makinaların aynı ağda
bulunması gereklidir.

248 © Mustafa Başer & Görkem Çetin - 2007


4. Adım: smb.conf dosyasını oluşturun.

[global]
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba
share modes = yes
[homes]
comment = Kullanıcıların özel dizinleri (/home altında
bulunur)
browseable = no
read only = no
create mode = 0750
[tmp]
comment = Geçici dosyaların atılacağı dizin
path = /tmp
read only = no
public = yes
Eğer yukarıdaki dosyada bir değişiklik yapacaksanız smb programını
2.adımdaki gibi yeniden çalıştırın. Genellikle sistem yöneticileri bir
hata yaptıklarında kolayca geri dönebilmek için orjinal smb.conf
dosyasını el altında bulundururlar. (örneğin /etc/smb.conf.eski
adıyla)

5. Adım: Windows'lardaki şifrelenmiş parola


desteğini kaldırın.
Windows makinalarda, aşağıdaki maddeleri sırasıyla takip edin.
a. Start  Run altından regedit yazın.
b. HKEY_LOCAL_MACHINE üzerine fareyle gelin ve çift tıklayın.
c.
/HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/VxD
/VNETSUP bölümüne kadar gelin.
d. Menüden Edit New  DWORD Value seçin.
e. Girdiyi "New Value #1"'den EnablePlainTextPassword'e çevirin.
f. Yeni girdi üzerine gelip çift tıklayın. Bir pencere açılacak ve sizden
yeni değer girmeniz istenecektir. Bu değeri 1 olarak işaretleyin ve
pencereden çıkın.
şimdi Windows makinadaki "Ağ Komşularım"dan Linux'u
görebilirsiniz. Unutmayın, home dizinini paylaştırmak için Linux'ta
açtığınız kullanıcı adıyla Windows'tan girmelisiniz.
Ya da tüm bunları hatasız ve çabucak yapmak için
/etc/docs/samba-x.y.z/docs/Win95_PlainPassword.reg (win98 ler
için Win98_PlainPassword.reg) dosyasını bir disket ile Windows
makinanıza taşıyın ve dosya üzerine çift tıklayın.

© Mustafa Başer & Görkem Çetin - 2007 249


EK: Sambanın Hızlı Yapılandırılması

Hepsi bu kadar. şimdi her kullanıcı ayarlanmış Windows'larından


girdikleri zaman Linux'u ağda görebilecekler ve kendi dizinlerini
paylaşım amaçlı kullanabileceklerdir.

250 © Mustafa Başer & Görkem Çetin - 2007


İndeks

Index

CIFS.............................................13
A
AAT...............................29, 142, 150 client code page............................54

admin users ................................76 comment......................................64

Alan Girişleri..............................130 config file......................................25

Alan Yöneticisi............................124 CONFIG.POL..............................130

allow hosts...................................64 create mask..................................77

ana alan tarayıcısı......................142 create mode..................................77

Ana Ana Tarayıcı........................150 D


Andrew Tridgell..............................3 dead time.....................................38

announce as.................................34 debug level...................................52

announce version.........................34 default case..................................79

auto services................................28 default service..............................28

available.......................................71 delete veto files.............................74

Aylak ıstemciler............................38 deny hosts....................................65


DES............................................153
B
bayt-range....................................83 DHCP.........................................146

bbSAT........................................223 directory mask.............................77

Bellek Eşleme.............................101 directory mode.............................78

bind interfaces only......................35 dizinleri gizlemek..........................74

broadcast...................................151 dns proxy.............................33, 151

browseable...................................64 Domain Admins..........................124


domain logons..............................49
C
case sensitive...............................79 domain master.............................31

case sig names.............................79 dont descend................................73

cdrom paylaşımı...........................72 DOS ıstemci...............................233

character set................................55 Dosya ısimleri...............................78

chcp.............................................54 Dosya Kilitleme.............................82


İndeks

E I
encrypt.......................................153 include.........................................26
encrypt passwords........................42 inetd...........................................163
Event Viewer..............................126 interfaces.....................................35
exec..............................................72 invalid users.................................70

F IPC$.............................................93
fake oplocks.................................83 K
follow symlinks.............................74 kayıt dosyası..............................167
force group ..................................77 KDE Samba Status.....................170
force user.....................................76 keep alive.....................................38

G Kilitleme.......................................99
getwd cache..................................56 kısayol..........................................74
Gezici Kullanıcı Profilleri.............132 Kullanıcı Basamağı.......................12
Giriş Betiği.................................131 Kullanıcı Düzeyi Onayı.................40
global...........................................24 kullanıcı profilleri.......................130
gnomba......................................184 L
GNOME......................................207 LinuxConf ve gnosamba.............207
gnosamba...................................215 lmhosts......................................195
guest only.....................................71 lmhosts dosyası..........................166

H load printers.................................58
Haber öbekleri..............................93 local master..................................29
Haberleşme listeleri:.....................93 local master browser...................139
Harf Büyüklüğü...........................79 lock directory...............................58
hata ayıklama düzeyi..................167 locking.........................................82
homedir map................................55 log file..........................................51
homes..........................................24 log level........................................52
host equiv.....................................50 logon path....................................49
hosts allow...................................65 logon script..................................49
İndeks

lpq cache time..............................59 Ntuser.DAT.................................137


lpq command................................86 null passwords.............................50
lprm.............................................87 O
lprm command.............................86 Okuma Büyüklüğü.......................98

M okuma hakkı................................75
make_printerdef.........................107 oplocks ........................................83
Makrolar......................................22 os level......................................30p.
mangled names......................78, 94 oylum ismi...................................73
max connections..........................71 P
max disk size................................57 Parola ışlemleri...........................189
max log size..................................52 passwd.......................................158
max xmit................................37, 99 passwd chat.................................51
MD4 algoritması.........................153 password level..............................44
memory mapping........................101 password program........................50
message command.......................61 password server...........................47
Microsoft Client for DOS.............235 path.............................................63
msclient.....................................233 Paylaşım Basamağı.......................12

N Paylaşım Düzeyi Onayı.................40


Negport........................................14 paylaşımın gizlenmesi...................73
NetBEUI.......................................10 PC-NFS..........................................3
netbios aliases..............................27 poledit........................................126
NetBIOS isimleri...........................10 Policy Editor...............................126
netbios name................................27 postexec.......................................72
netmon.exe.................................135 preexec.........................................72
nis homedir..................................55 preferred master...........................30
nmbd..........................................165 preserve case................................79
nmblookup.................................197 print command.............................86
nslookup....................................197 print ok........................................84
İndeks

printable......................................84 S
printcap name..............................59 security........................................41
printer..........................................84 sembolik bağlantılar.....................74
printer driver................................85 Server Manager..........................126
printer driver file..........................60 server string.................................28
printer driver location...................85 Share Level...................................12
printer name................................85 share modes.................................83
printers........................................25 short preserve case.......................80
printmode...................................183 Sistem Politikaları......................125
protocol........................................36 SMB...............................................9
public...........................................71 SMB ıstemcisi.............................173
put.............................................183 smb passwd file............................46
PX/SPX........................................10 SMB Türevi Protokol.....................12

Q smb.conf......................................21
queue.........................................184 smbclient....................................173

R smbd..........................................161
read list........................................76 smbedit......................................227
read only......................................75 smbpasswd.................155, 157, 189
read prediction.............................57 smbrun........................................62
read raw...............................37, 100 smbstatus..................................169
read size.......................................56 socket address..............................36
remote anounce............................32 Soket Seçenekleri.........................98
remote browse sync......................32 status...........................................60
root dir.........................................61 strict locking................................83
root directory................................60 Sürüm Numaraları.......................91
root postexec................................73 swat...........................................201
root preexec..................................73 syslog...........................................53
syslog only...................................54
İndeks

System Policies...........................125 wins server...................................31

T WINS Sunucusu.........................145
Tarama.......................................139 wins support................................32
tarama listesi..............................139 workgroup....................................27
tcpdump.....................................119 write list.......................................75
tcpwrapper...................................65 write raw......................................37
testparm.......................................66 writeable .....................................75
time server...................................62 Y
U YAT...............................29, 142, 149
unix realname..............................57 Yavaş Girişler.............................101
User Level.....................................12 Yavaş ıstemciler..........................101
User Manager for Domains.........126 Yazıcı Hizmetleri...........................84
user.DAT....................................133 yazıcı kuyruklarını listelemek.......86
user.MAN...................................133 yazıcıdaki kuyruğu silmek............87
username level.............................45 yazma hakkı.................................75
username map ............................48 Yerel Ana Tarayıcı...............139, 149

V Yerel Yazıcı Komutları..................85


valid chars....................................55 yppasswd...................................158
valid users....................................70 İ
veto files.......................................74 İstemci Ayarları..........................102
volume.........................................73 ş
W şifrelenmiş parola.......................153
wide links.....................................75
Windows 95/98 istemcileri.........239
Windows 9x/NT yazıcıları...........109
WinPopup.....................................61
WINS..........................................140
wins proxy....................................33

You might also like