Samba : Linux, Windows ve Apple ile dosya paylaşımı

Bir ağınız olduğunu varsayarak bu yazıma başlıyorum. Linux kurdunuz ve
diğer makineleriniz üzerindeki veya diğer makinelerinizden linux
makineniz üzerindeki dosyalara nasıl ulaşabileceğinizi bilmiyorsunuz?
İşte çözüm : Samba (SMB)

Önce kurduğunuz linux üzerinde samba sunucusu olup olmadığını kontrol edelim. Bunu anlayabilmek için shell üzerinde :

# rpm -q samba

Eger kurulmuş ise bu şekilde bir cevap gönderecektir..

samba-2.2.3a

Eğer değil ise ..

' Package Samba is not installed ' hata mesajını gönderecektir.

Samba kurulumunu denetlemek için başka bir yöntem daha...

root@wishmaster:~> ps x | grep smbd

27238 pts/0 D 0:00 grep smbd

root@wishmaster:~>ps x | grep nmbd

27240 pts/0 S 0:00 grep nmbd

Sambanın çalışma mantığında iki tane servis olarak çalışmaktadır.

Linuxda servis yönetimi yapan inetd bilgisayarınız başladığında çalışır ve istemci tarafından gelen istekleri beklemek üzere

uyku moduna gecer.

* smbd sistem üzerindeki paylaşılan kaynakların kullanıcı ve sunucu arasında kuralları belirlemekle görevlidir. (PDC görevi)

* nmbd ise linux üzerinde networkunuzde çalışan diğer bilgisayarların adlarını kaydetmekle görevlidir. (WINS gorevi)

Eğer bu komutu girdiğinizde karşınıza yukarıdaki veriler çıkıyorsa
linux makineniz üzerinde samba server aktif ve çalışıyor demektir. Eger
bu komutu girdiğinizde yukarıdaki servisler çalışmıyorsa samba
sunucusunu kurmamız gerekmektedir.

Önce Samba`nın son sürümünü çekelim.

root@wishmaster~>wget http://us4.samba.org/samba/ftp/samba-latest.tar.gz

Wget ile Samba`nın son sürümünü çekmeye başlıyoruz ve Wget işlemini
bitirdiğinde dosyayı çektiğiniz yerde yeni bir klasör oluşturun.

root@wishmaster~>mkdir samba

root@wishmaster~>mv samba-latest.tar.gz samba/

root@wishmaster~>cd samba

Simdi Sambadan çektiğimiz dosyayı güvenli olması için yeni bir klasöre koyup o klasör üzerinde işlem yapacağız.

root@wishmaster~/samba/samba-2.2.3a/>tar zxvf samba-latest.tar.gz

root@wishmaster~/samba/samba-2.2.3a/>cd source

root@wishmaster~/samba/samba-2.2.3a/source>./configure -with-smbmount

./configure komutu ile sistem üzerinde samba`nın calisabilmesi ve
kendini derleyebilmesi sisteminiz üzerinde bir tarama yapacaktır. Bu
işlem biraz uzun sürebilir.

root@wishmaster~/samba/samba-2.2.3a/source>make

Not : make install komutunu girmeden önce sisteminiz üzerinde root
kullanıcı adı ile girdiğinize emin olun. Çünkü make install yapıldığı
an samba /usr/local/samba olarak bir klasör oluşturmak isteyecek fakat
siz root olarak giriş yapmadığınızdan bunu gerçekleştiremeyecektir.

root@wishmaster~/samba/samba-2.2.3a/source>make install

Bu şekilde servisler makinenize başarılı bir şekilde kurulmuş olacaktır.

Samba servislerini linux açıldığında başlaması için birkaç dosyayı
değiştirmemiz gerekecektir. Bunu yapabilmek için linuxda bulunan inetd
servisinden yararlanacağız.

* Asagidaki iki satırı /etc/services dosyasına yerleştirmeniz gerekmektedir...

netbios-ns 137/tcp # NETBIOS Name Service

netbios-ns 137/udp

netbios-dgm 138/tcp # NETBIOS Datagram Service

netbios-dgm 138/udp

netbios-ssn 139/tcp # NETBIOS session service

netbios-ssn 139/udp

swat 901 /tcp # Swat Web Configurator

* Ve /etc/inetd.conf içine yerleştirmeniz gereken satırlar ise:

netbios-ssn stream tcp nowait root /usr/local/Samba/bin/smbd smbd

netbios-ns stream udp wait root /usr/local/Samba/bin/nmbd nmbd

swat stream tcp nowait.400 root /usr/sbin/swat swat

* Eğer bunu bir script ile yapmak istiyorsanız...

if [-x /usr/local/Samba/bin/smbd]; then

echo 'Starting Smbd ...'

/usr/local/Samba/bin/smbd -D

echo 'Starting Nmbd ...'

/usr/local/Samba/bin/nmbd -D

fi

* Samba`yı başka bir şekilde her açılışta başlatabilmek içinse:

setup yazın ve System services kısmında SMB işaretleyin ve bilgisayarınızı başlatın.

Böylece linux açıldığında samba ile gerekli servisler otomatik olarak açılacaktır.

Şimdi yapmamız gereken Samba`nın konfigürasyonu..

konfigürasyonu yapabilmeniz için birkaç yol mümkündür.

1) smb.conf modifiye ederek konfigüre etmek.

2) Ksamba (Grafik konfigürasyon yardımcısı)

3) Webmin üzerinden (Linuxun Web üzerinden konfigürasyon yardımcısı)

4) Swat üzerinden (samba`nın Web konfigürasyon yardımcısı)

Daha çok bilgi için http://www.webmin.com ve http://us4.samba.org/samba/GUI/ adresine göz atabilirsiniz.

Samba`yı smb.conf dosyası ile konfigüre edelim. smb.conf 3 tane bölümden oluşmaktadır.

Bunlar [global] , [homes] ve [printers] .

[global] kısmını yapılandırmaya başlayalım.

* Workgroup = Çalışma_Grubu (Buraya linux bilgisayarin hangi ağda çalışacağını belirleyecektir.)

* Server String = Bilgisayar_adı (Çalışma grubunun üzerinde Samba sunucusunun hangi isimle gözükeceği belirlenecektir. )

ve

* netbios name = Bilgisayar_adı

* host allow = 10. (Ağ üzerinde samba sunucusuna erişmek için izin verilecek Ip bloku girilmelidir)

* host deny = (Ağ üzerinde samba sunucusuna erişmek için izin verilmeyen ip bloku girilmelidir)

* guest account = guest (Misafir kullanıcısı için belirtilir)

* log file = /var/log/samba/log.%u (kullanıcı adına gore log tutacaktır)

* Security : Samba üzerindeki istemci tarafı için oluşturulan şifre
ve kullanıcı adı doğrulamasının nasıl gerçekleşeceğini belirleyen
kısımdır.

Bu kısım Samba üzerinde 4 bölümden oluşmaktadır. domain,user,server,share

* Security -> Domain

Bu seçenekte kullanıcı adı ve şifresi başka bir NT PDC veya SAMBA PDC tarafından doğrulanır.

* Security -> User

Bu seçenekte kullanıcı adı ve şifresi /etc/smbpasswd dosyası tarafından sağlanır.

* Security -> Server

Bu seçenekte kullanıcı adı ve şifresi başka bir NT PDC veya SAMBA PDC tarafından doğrulanır.

* Security -> Share

Bu seçenekte makine üzerindeki her paylaşım için şifre sorulur.

> encrypt passwords = Bu opsiyon şifrelerin şifrelenerek gönderilmesini sağlar ve

duz metin (plain text) olarak gönderilmesini onler.

Buraya yes denilmelidir.

> smb passwd file = kullanıcı adı ve şifrelerin hangi dosya üzerinde tutulacağı belirlenir.

/etc/smpasswd olarak belirtebilirsiniz.

Eger Sambada kullanıcı ve şifre ile onaylamak istiyorsanız security = user olmalıdır.

security=user

smb passwd file = /etc/smpasswd

Samba üzerinde kullanıcı ekleme iki şekilde yapilabilir.

> Smbadduser kullanılarak kullanıcı eklenir ve şifresi smbpasswd ile belirtilir.

root@wishmaster~>smbadduser wishmaster:wishmaster

root@wishmaster~>smbpasswd wishmaster

> Eger linux bilgisayarınız üzerinde kullanıcılarınız varsa bunu otomatik olarak samba`nın kendi konfigürasyon

dosyasına ekler.

root@wishmaster~>smbpasswd -a wishmaster

* socket options = TCP_NODELAY

samba`nın hangi socket seçeneğini kullanacagi belirlenir.

* local masters = yes

Local Masters seçeneği samba sunucunun yerel ağda yetkili sunucu olup olmadığını belirler.

* domain master = yes

Domain Masters seçeneği samba sunucunun tüm diğer sunucular için yetkili olup olmayacağını belirler.

* domain logons = yes

Domain Logons seçeneği samba sunucunun Windows kullanıcıları için yetkili sunucu olup olmayacağını belirler.

* Wins support = no

Wins support seçeneği samba sunucunun WINS olarak çalışıp çalışmayacağını belirler.

* case sensitive = yes

Case Sensitive seçeneği samba sunucunun kullanıcı adı ve şifrelerinde büyük harf/küçük harf eşlemesi yapıp yapmayacağını

belirler.

Burada [global] konfigürasyon kısmını bitirmiş oluyoruz.

[homes] kısmını yapılandırmaya başlayalım.

* comment = Home Directories

Comment ile paylaşılan kaynağın adını ve bilgi belirleyebilirsiniz.

* browseable = no

paylaşıma izin verilen kişiler dışından görülüp görülmeyeceğini ayarlayabilirsiniz.

* writable = yes

paylaşılan dosyalarda gerekli izine sahip olan kişiler için yazma hakkı verir.

* guest = ok

Misafir kullanıcıya izin verip vermemek için kullanılır.

* public = yes

paylaşılan dosyanın herkes tarafından kullanıma açılıp açılmayacağı belirlenir.

* admin users = wishmaster root

Admin Users bölümünde paylaşım verilen klasörde belirtilen kullanıcılar tum haklara sahiptir.

* valid users = wishmaster test

Valid Users bölümünde paylaşım verilen klasöre erişim hakkı olan kullanıcılar belirlenir.

* invalid users = cadium

Invalid users bölümünde paylaşım verilen klasöre erişim hakkı olmayan kullanıcılar belirlenir.

* write list = wishmaster

Paylaştırılmış dosya üzerinde belirtilmiş kullanıcılara yazma hakkı verilmesini sağlar.

* read list = wishmaster

Paylaştırılmış dosya üzerinde belirtilmiş kullanıcılara okuma hakkı verilmesini sağlar.

* max connection = 40

Paylaştırılmış dosya üzerine bir anda bağlanacak kullanıcı sayısı belirlenebilir.

* create mode = 0750

kullanıcı yeni bir dosya yarattığında o dosyanın hangi modda olacağı belirlenir.

[Profiles]

comment =User Profiles

path = /home/profiles

browseable = no

guest ok = yes

[Printers] yapılandırılması:

comment = All Printers

path = /tmp/

browseable = no

writable = no

printable = yes

guest ok = no

Örnek konfigürasyon :

[global]

netbios name = wishmaster

workgroup = Workgroup

security = user

domain logons = yes

encrypt passwords = yes

os level = 65

domain master = yes

preferred master = yes

local master = yes

wins support = yes

logon script = login.bat

logon path = \wishmasterprofile\%U

[homes]

browseable = no

writable = yes

comment = Home Mount for User

[netlogon]

path = /home/samba/netlogon

writable = no

guest ok = no

comment = Netlogon

[profile]

path = /home/samba/profile

writeable = yes

#Public Share

[public]

path = /usr/public

browseable = yes

public = yes

comment = Public Shae

[Printers ]

comment = All Printers

path = /tmp/

browseable = no

guest ok = no

writable = no

printable = yes

Eger Samba`yı daha kolay bir şekilde yapılandırmak istiyorsanız Webmin ve SWAT eklentileri size yardımcı olacaktır.

Samba (www.samba.org)

Webmin (www.webmin.com)

Tüm sorularınız için mail ile ulaşabilirsiniz.

wishmaster at olympos.org

__________________________

3
Ortalama: 3 (1 vote)