Samba nedir ve ne zaman ihtiyacımız vardır?

Ozetle: Samba projesi 1992'de Andrew Tridgell tarafından başlatılmıştır. Kendisi, Microsoft Windows kullanan bilgisayarlar ile dosya ve yazıcı paylaşımı yapmayı sağlayan araclar topluluğudur. SMB ağ protokolunu kullanır ki bu Windows ağ uygulamasının kalbidir.

Samba şu işler icin kullanılabilir:

* Windows (veya Samba istemcileri) icin bir sunucu vazifesi gorme: dosya ve yazıcı paylaşımı. Buna PDF sahte-yazıcılar da dahildir, boylece ağınızdaki her yazıcı PDF dosyaları yazabilir.
* Bir Windows ağında alan denetleyicisi olarak iş gormek (kullanıcıları doğrulamak vb.)
* Başka bazı karışık işleri yapmak. Orneğin, Windows alan denetleyicisini kullanarak Linux/UNIX kullanıcılarının doğrulamasını yapmak.

Samba GPL lisansı altında tamamen ozgur bir yazılımdır. Samba hakkında daha fazla bilgiye http://www.samba.org adresinden ulaşılabilir.

Sambaya ihtiyacınız var mı?

Samba bir meta pakettir ve sunucularda kurulmak icin tasarlanmıştır. İstemciler bu meta pakete ihtiyac duymazlar.
Samba meta paketi istemcilerin şunları yapmak istemesi durumunda gerekli değildir:

* Bir Windows makine uzerindeki paylaşılan dosya, surucu ve yazıcılara ulaşmak. SAdece smbfs eklentisine ihtiyacınız vardır.
* Bir Linux makineye bağlı yazıcınızı Windows kurulu makine uzerinden kullanmak. CUPS yazıcıyı ağ uzerinden erişilebilir olarak ayarlayabilir.
* İki Linux makine arasında dizin paylaşımı yapmak. Bir makine uzerinde NFS kullanabilir ya da FTP sunucu acabilirsiniz. Boylece diğer makinelerden FTP istemcisi ile bu makineye ulaşabilirsiniz.

Neler kurulacak?

- Sunucu -

Eğer bilgisayarınızın bir Samba sunucu gibi işe gormesini (dosya veya yazıcı sunucusu) istiyorsanız herhangi bir metotla sambayı kurun.


Kod:
sudo aptitude install samba
- İstemci -

Samba paketi istemciler icin gerekli değildir. Bunun yerine smbfs kurun (aşağıya bakın).

Eğer bir Samba sunucuya bağlanmak istiyorsanız (Samba calıştıran bir Ubuntu ya da Windows sunucu) iki seceneğiniz vardır. smbclient komutunu kullanabilir ya da doğrudan samba dosya sistemini smbfs ile bağlayabilirsiniz.

- Komut satırı -

Ubuntu herhangi bir samba sunucuya hicbir şey yapmadan smbclient ile bağlanabilir. smbclient bir ftp bağlantısına benzer calışır. Bir kere bağlandıktan sonra ls, cd, put, get gibi komutları kullanabilirsiniz.

- smbfs -

Bu paket istemcilerin samba paylaşımlarını yerel bir disk gibi bağlamalarına imkan sağlar. Coğu kullanıcı bu tercihi kullanır. Herhangi bir metotla smbfs'yi kurabilirsiniz. Bu SMB paylaşımlarını bağlamak icin gerekli paketleri kuracaktır:

Kod:
sudo aptitude install smbfs
Bilgisayarı yapılandırma

Ağ yapılandırmasını aşağıdaki menu ile acın.

Sistem -> Yonetim -> Ağ

Ortadaki Genel sekmesine tıklayarak devam ediyoruz.

- Ayarlarınızı girin -

Host Ayarları

Host adı:
Alan adı:

Windows Ağı Oluştrma

Windows ağı oluşturmayı işaretliyoruz

Tanım:
Domain/Workgroup:

Fesity ve Gutsy altında bu ayarlar Sistem -> Yonetim -> Paylaşılan Klasorler altındadır.

Not: Eğer bilmiyorsanız ağ yoneticinize sorabilirsiniz. Klasik calışma grubu ismi "workgroup" veya "mshome" olabilir.

Buradaki onemli ayarlar zaten onceden doldurulmuş olan host ismi ve alan adı/calışma grubu kısmıdır. Tum pencerelerdeki Tamam tuşlarına basın ve Windows makinelerle iletişimin ilk kısmını boylece bitirmiş olun.

Aynı zamanda "/etc/samba/smb.conf" dosyasını elle duzenleyip daha sonra samba servisini durdurup yeniden başlatabilirsiniz.

Not: Bir "Windows Ağı" bolumu secmeden de devam edebilirsiniz.


SMB paylaşımlarını gezinme

Ubuntu ve Gnome bir Windows ağ paylaşımındaki dosyalara ulaşmayı kolaylaştırır.

Bilgisayarım menusunu acın, Ağ'a tıklayın. Bir "Windows ağ" simgesi goreceksiniz, acın. Bir sonraki pencerede ağınızda bulunan butun alan adı/calışma-grupları gorulecektir. Her alan adı/calışma-grubu altında bilgisayarları goreceksiniz (tabi paylaşım yapanları). Bilgisayarların paylaşımlarına ulaşmak icin cift tıklayın. Daha kolay olabilir mi?

Bir bilgisayarın paylaşımlarını gostermeden once sistem sizden bir kullanıcı adı ve parola sorabilir. Bağlanmak istediğiniz bilgisayar icin gecerli parola ve kullanıcı ismini girmeniz gerekir. Ek olarak bu parolayı keyring ile daha kullanışlı olması acısından saklayabilirsiniz.

Not: On tanımlı samba kurulumu parolalar ile eşleşme yapmaz. Bunu yapmak icin Windows makineden Ubuntu ev dizinine ulaşmak isteyen her kullanıcı icin "smbpasswd" komutunu yurutmek zorunda kalabilirsiniz.

Grafiksel yapılandırma

Bu bolum grafiksel aracları tercih edenler icindir. Bu bolum size Ubuntu ve Windows veya Ubuntu arasında SMB paylaşımlarını kullanmanız icin cabuk başlangıc sağlayacaktır. GUI metodu kolay olmasına rağmen şu nedenlerden oturu daha az guvenlidir:

1. Paylaşımlar genele acıktır (orneğin gezinebilirdir)
2. Paylaşımlar icin parola konulamaz (herhangi biri tarafından bağlanılabilir)

Bir servis (sunucu) kuruduğunuzu ve istenmeyen erişimleri engellemek icin ateş duvarı (firewall) kurmanız gerektiği konusunu aklınızdan cıkartmayın. Aynı zamanda aşağıda değinilen "paylaşımlarınızı gezinilebilir olmaktan nasıl saklarım ve nasıl parola atayabilirim" konularına da goz gezdirin.

- Ubuntu Sunucu -

Bu bolum Ubuntu'yu bir Samba sunucu olarak ayarlar.

-- Bir klasoru paylaşma --

Bir dizini paylaşmak icin bu dizine erişim hakkınız olması gerekir. Ev dizininize gidin ve Belgelerim dizinine sağ tıklatın, acılan menude "Dizini Paylaş" bolumunu secin.

Eğer Samba kurulu değilse "Paylaşım servisi kurulmadı" mesajını alacaksınız. "Windows ağ desteğini (SMB) kur" şıkkını secin ve "Unix ağ desteğini (NFS) kur" secenğini iptal edin. Ardından "Servisleri kur" seceneğini yurutun.

Eğer "samba .deb bulunamadı" gibi bir mesaj alırsanız terminali acın ve ardından şu komuyu yurutun:

Kod:
sudo aptitude update
Ardından tekrar SMB desteğini kurun. Ubuntu sambayı indirip kuracaktır. Samba kurulduktan sonra Belgelerim dizinini sağ tıklayıp "Dizini Paylaş" seceneğini işaretleyin. "Dizini Paylaş" penceresi cıkacaktır. "Windows ağları (SMB)" kısmını secin ve aşağıda paylaşımınız icin bir isim verin. Eğer dizinin yazılabilir olmasını da istiyorsanız "Sadece okunabilir" kısmındaki işareti kaldırın. "Paylaş" duğmesine tıklayın.

- Windows XP Sunucu -

Bu bolum XP'yi bir samba sunucu olarak ayarlar.

-- Bir klasoru paylaşma --

1. Windows sunucuda paylaşmak istediğiniz klasore gidin. Dizine sağ tıklayın ve "Paylaşım ve Guvenlik" sekmesine gecin. Acılan pencerede "Paylaşım" sekmesine gecin. "Ağ Kurulum Sihirbazı" seceneğini tıklayarak ağınızdaki paylaşımları ayarlayın. Sihirbaza gore devam edin. Unutmayın ki on tanımlı calışma grubu ismi MSHOME'dur. Bunu istediğiniz gibi değiştirebilirsiniz fakat tum bilgisayarlarınız aynı calışma grubunda olmalıdır. Son olarak size "Dosya ve yazıcı paylaşımını ac" seceneği sunulacaktır. Bu istediğiniz secenektir, sihirbazda devam edin. Ayarların etkin olması icin bilgisayarınızı yeniden başlatmanız gerekecektir.

2. Bilgisayar acıldıktan sonra paylaşmak istediğiniz klasore gidin. Sağ tıklayın ve "Paylaşım ve Guvenlik" sekmesine gecin. Acılan pencerede "Paylaşım" sekmesine gecin. "Ağda bu klasoru paylaş" seceneğini işaretleyin. Klasore bir paylaşım ismi verin. Bu Ubuntu kullanıcılarına Samba ile sadece okuma hakkı verecektir. Okuma/yazma erişimi icin "Ağ kullanıcılarına dosyalarımı değiştirme izni ver" seceneğini işaretleyin. Uygula duğmesine tıklayın ve pencereyi kapatın.

- Bir Samba sunucusuna bağlanma -

Ubuntu veya XP sunucunuzu yukarıdaki anlatıldığı şekilde yapılandırın.

-- Ubuntu istemci --

Ubuntu istemcide ust paneldeki Yerler -> Ağ bolumunu kullanın. "Windows ağ" simgesini goreceksiniz ve paylaşılan dizinlerin burada erişilebilir olması gerekir. Parola sorulacaktır, boş bırakın ve Bağlan duğmesine tıklayın.

Alternatif Yol: Ust menuden Yerler - Sunucuya Bağlan bolumunu secin. "Servis Turu" olarak "Windows paylaşımını" secin. "Sunucu:" kısmına sunucunun IP numarasını "Paylaşım:" kısmına paylaşılan dizinin ismini yazın. "Bağlan" duğmesine tıklayın. (Parola gerekmez).

Eğer SMB paylaşımınızı IP adresi yerine host ismiyle bağlamak istiyorsanız, /etc/hosts dosyanızı duzenleyin ve samba sunucunuzu ekleyin (Sentaks: IP Adresi host-adı)

192.168.1.100 host-adı

host-adı = samba sunucu isminiz

-- Windows XP İstemci --

Windows uzerine Bilgisayarım'a tıklayın ve "Ağ Bağlantılarım" kısmına gecin. Ubuntu sunucunuza gidin, parola gerekmeden paylaşımınız erişme acık olacaktır.

Alternatif Yol: Ust menuden Araclar -> Ağ Surucusu Bağlan kısmına gecin. SMB paylaşımınız icin uygun bir harf secin (On tanımlı z. "Dizin:" kısmına
\sama_paylaşım_ip_adresipaylaşım olacak şekilde adresi girin. Windowsu actığınızda kendiliğinden bu paylaşıma bağlanmak istiyorsanız, "Girişte tekrar bağlan" kısmını işaretleyin. "Bitti" duğmesine tıklayın. Bir diyalog kutusu acılacaktır. Samba kullanıcı isminizi ve parolanızı girin. "Tamam" tuşuna basın.

Eğer SMB paylaşımınızı IP adresi yerine host ismiyle bağlamak istiyorsanız, C:WINDOWSsystem32driversetchosts dosyasını duzenleyin ve samba sunucunuzu ekleyin. (Sentaks: IP Adresi host-adı)

192.168.1.100 host-adı

host-adı = samba sunucu isminiz

Samba İstemci Elle Yapılandırması

Bu bolumde bir Ubuntu istemci uzerindeki SMB dosya dosya sunucusunu elle yapılandırmayı bağlanmayı goreceğiz. smbclient ftp bağlantısı benzeri bir komut satırı aracıdır. smbfs ise bir SMB dosya paylaşımı bağlamanıza yarar. Bir kere SMB paylaşımı bağlandıktan sonra yerel disk gibi olur. SMB paylaşımına dosya gezgininiz ile ulaşıp gezinebilirsiniz. Orneğin nautilus, konqueror, thunar, vb.)

-- Bir Samba dosya sunucusuna bağlanma --

--- Komut Satırı ---

Komut satırından bağlanma FTP ile benzerdir.

Genel SMB paylaşımlarını listeleme:

Kod:
smbclient -L //sunucu -U kullanıcı
Bir SMB paylaşımına bağlanma:

Kod:
smbclient //sunucu/paylaşım -U kullanıcı
Daha sonra parola girilir.

Doğrudan şoyle de bağlanılabilir:

Kod:
smbclient //sunucu/paylaşım -U kullanıcı%parola
ancak burada parola ekranda gorulecektir.

Bağlandıktan sonra şuna benzer bir ekranla karşılaşacaksınız:

smb: >

Kullanılabilecek komutları gormek icin "help" yazabilirsiniz (" işaretlerini kullanmadan)

--- CIFS ---

CIFS smbfs paketi ile beraber gelir ve smbfs'nin yerini almıştır.

http://linux-cifs.samba.org

---- root olmayan kullanıcıların SMF paylaşımlarını bağlaması ----

On tanımlı olarak sadece root SMB paylaşımlarını komut satırında bağlayabilir. root olmayan kullanıcıların da SMB paylaşımlarını bağşayabilmesi icin SUID ayarlamalısınız. Ancak sudo'yu yapılandırmak tavsiye edilen yoldur. sudo visudo ile yapılandırılmalıdır.

İki seceneğiniz vardır. Ya "users" grubuna SMB paylaşımlarını bağlama hakkı vereceksiniz ya da "samba" adından bir grup oluşturup bu grup uzerinden izinleri vereceksiniz. samba grubu uzerinden gidelim

Kod:
sudo groupadd samba sudo adduser kullanıcı_adı samba
kullanıcı_adı yerine istediğiniz kullanıcının adını yazın.

Kod:
sudo visudo
Grup bolumu altına samba paylaşımlarını bağlayacak grubu girin.

Eğer halihazırda var olan "users" grubunun bu işi yapmasını istiyorsanız %samba yerine %users yazın.

Aşağıdaki komutlarla "sunucu" uzerinde "paylaşım" dizinini ~/mnt (Ev dizini altında olacaktır) dizini altına bağlayabilirsiniz.

Kod:
mkdir ~/mnt sudo mount -t cifs //suncu_ip_adresi/paylaşım ~/mnt -o username=samb_user,noexec
Not: Buradaki samb_user samba sunucu uzerindeki kullanıcı adınızdır ve bu istemci uzerindeki kullanıcı adınızdan farklı olabilir.
"noexec" secenği SMB paylaşımı uzerindeki calışabilir betiklerin calışmasını engeller.

Once sudo icin parola ardından da paylaşımı bağlamak icin samba_kullanıcı parolanız sorulacaktır.

Ayırmak icin:

Kod:
sudo umount ~/mnt
---- SMB paylaşımlarını otomatik bağlamak ----

Sistemi her başlattığınızda paylaşımların kendiliğinden bağlanmasını istiyorsanız aşağıdakileri uygulayın.
Herhangi bir duzenleyici ile, Windows/Samba kullanıcı hesap bilgilerini iceren şu dosyayı oluşturun:

Kod:
sudo gedit /etc/samba/user
aşağıdaki gibi iki satır icermelidir:

username = samba_kullanıcısı
password = samba_kullanıcı_parolası

Not: samba_kullanıcısı samba sunucusundaki kullanıcı adınızdır ve istemcidekinden farklı olabilir. Aynı şekilde samba_kullanıcı_parolası samba_kullanıcısı icin sunucu uzerinde belirlenmiş parolanızdır.

Dosyayı kaydedip kapatın.

Guvenlik icin dosyadaki izinleri değiştirin:

Kod:
sudo chmod 0400 /etc/samba/user
Şimdi, paylaşımınızın bağlanacağı dizini oluşturun. Orneğin /media/samba_paylaşım

Kod:
sudo mkdir /media/samba_paylaşım
Herhangi bir duzenleyici kullanarak /etc/fstab dosyasına SMB paylaşımınız icin aşağıdaki gibi bir satır ekleyin.

Kod:
sudo cp /etc/fstab /etc/fstab.yedek sudo gedit /etc/fstab
SMB paylaşımınız icin bir satır ekleyin:

//sunucu_ip_adresi/paylaşım /media/samba_paylaşım cifs credentials=/etc/samba/user,noexec 0 0

Paylaşım bir sonraki acılışta kendiliğinden bağlanacaktır.

Paylaşımı hemen bağlamak icin:

Kod:
sudo mount /media/samba_paylaşım
Şu şekilde de ayırabilirsiniz:

Kod:
sudo umount /media/samba_paylaşım
Eğer guvenlik icabı kendiliğinden bağlanmasını istemiyor fakat her seferinde ip adresi ve paylaşım yerini de gostermek istemiyorsanız şoyle bir değişikliğe gidin.

/etc/fstab satırını şu şekilde değiştirin:

//sunucu_ip_adresi/paylaşım /media/samba_paylaşım cifs noauto,credentials=/etc/samba/user,noexec 0 0

/etc/samba/user dosyasını duzenleyin. Parola satırını silin, sadece kullanıcı satırı kalsın. Boylece siz bu paylaşımı bağlamak istediğinizde parola sorulacaktır. Elle bağlamak icin

Kod:
sudo mount /media/samba_paylaşım
--- SMBFS ---

Not: Bu metot hala calışmasına rağmen CIFS'de de belirtildiği uzere artık kullanılmamaktadır ve kerneldek kaldırılmak icin beklemektedir.

C.N: CIFS kullanılabileceğinden Turkce'ye cevrilen bu belgede yer verilmeyecektir.


Samba Sunucu Elle Yapılandırması


Yapılandırma /etc/samba/smb.conf dosyasını okuyarak ve duzenleyerek olur. Bu dosya samba sunucu icin yapılandırma dosyasıdır.
Bazı grafiksel araclar da mevcuttur. Orneğin "kdenetwork-filesharing" ve Swat gibi.

KDE icin ciddi anlamda guzel bir Samba yapılandırma aracı mevcuttur. "kdenetwork-filesharing" paketini kurduktan sonra KDE Kontrol Merkezini acarak uaşabilrsiniz. İnternet & Ağ > Samba altından ulaşabilirsiniz ve oldukca kolay kullanımı vardır.

Bir diğer grafiksel aracsa web tabanlı olan Swat'tır. Biraz daha az kullanıcı dostudur.

Aşağıdaki ip ucları herhangi bir arac kurmadan komut satırı kullanılarak uygulanacaktır. Cok zor olmamakla beraber yazım hatalarına dikkat etmeniz yararlı olacaktır.

İlk once bir terminal acın: Uygulamalar -> Donatılar -> Ucbirim. Ardından smb.conf dosyasını acın.

Kod:
sudo gedit /etc/samba/smb.conf
smb.conf dosyası birkac bolume ayrılmıştır.

Global Settings
Debugging/Accounting
Authentication
Printing
File sharing
Misc
Share Definitions

Yorumlar # veya ; karakterleri ile başlar.

-- Genel Ayarlar --

Burada grafiksel bir ağ aracında (calışma grubu veya wins sunucu gibi) bulunan bircok satır goreceksiniz. Eğer tum isteklerinizi zaten yaptıysanız bu bolumu gecin. Eğer yapmadıysanız, ne istiyorsanız değiştirin. Neyin ne olduğunu anlamıyorsanız olduğu gibi bırakın ve gercek Samba yapılandırma belgesini okuyarak rastgele değiştirmek yerine ne yaptığınızı bilerek değiştirin. Belgeye şuradan ulaşabilirsiniz:
http://www.samba.org/samba/docs/using_samba/ch06.html

-- Dosya Paylaşımı (Temel) --

Bizim icin onemli olan kısım dosya paylaşımı. Samba paylaşımları koşeli parantezler icinde yer alır, [], ve takip eden satırlara secenekler ekleyerek yapılandırılır. Bircok secenek yes/no şeklindedir.

Değiştirmemiz gereken:

[homes]
comment = Home Directories
browseable = no

# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
writable = no

Burası sizin ev dizininizi tanımlar. Eğer ev dizininizi paylaşıma acmak istiyorsanız şu şekilde değişikliğe gidin:

[homes]
comment = Home Directories
browseable = yes

# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
writable = yes

Gorulduğu uzere "browseable = yes" ile paylaşıma acıp "writable = yes" ile yazılabilir kıldık.
Bu sizin ev dizininizi paylaşıma acmayı sağlar. Son olarak kullanıcı atamalıyız.

Kod:
sudo smbpasswd -a kullanıcı_adı
şoyle bir diyalog ile gerekenleri verin:

Yeni SMB parolası:
Yeni SMB parolasını tekrar yazın:
kullanıcı_adı kullanıcısı eklendi.

Not: kullanıcı_adı PC/Sunucunuzda mevcut olan bir kullanıcı adı olmalıdır. Her kullanıcı ekleme/değiştirmede veya smb.conf değişikliğinde Sambayı tekrar başlatın.

Kod:
sudo /etc/init.d/samba reload
-- Dosya Paylaşımı (Gelişmiş) --

Samba temel dosya paylaşımı ile başlamıştık. Yukarıdaki yonergeler temel paylaşım icin yeterlidir. Eğer detay arıyorsanız devam edebilirsiniz.

--- Eğer birden fazla ağ kartınız varsa ---

Eğer birden fazla kart veya ara biriminiz varsa Sambanın nerede calışacağını belirleyebilirsiniz. smb.conf dosyasında [global] bolumunun altına ekleyin:

"interfaces = 127.0.0.1, 192.168.0.31/24"
"bind interfaces only = yes"

İlk adres olan 127.0.0.1 loopback ağ bağlantısıdır (kendi makineniz). İkinci adres olan 192.168.0.31 ise Sambanın calışmasını istediğiniz karttır. 24 sayısı ise C-Sınıfı ağdaki on tanımlı subnettir. Bu ağınıza gore değişecektir.

"bind interfaces only" seceneği ile bir makinedeki hangi ara birimin SMB isteklerine cevap vereceğini sınırlandırırsınız.

Aşağıdaki satırları ekleyerek Samba sunucunuza hangi IP adreslerinin ulaşabileceğini de sınırlandırabilirsiniz:

"hosts allow = 127.0.0.1, 192.168.0.31, 192.168.0.32"
"hosts deny = 0.0.0.0/0"

loopback aygıtı ilk satırda mutlaka olmalıdır. İkinci satır ilk satırda olmayan tum Ip adreslerini reddedecektir.

--- Aynı yapılandırmada Private ve Public paylaşımlar ---

Oncelikle bunu global bolumunde ayarlamanız lazım.

[global]
security = user
encrypt passwords = true
map to guest = bad user
guest account = nobody

"security = user" kullanıcıların sunucunuza bağlanmasını kısıtlar. "encrypt passwords = true" sunucunuza bağlanırken tum Windows surumleri icin gereklidir. "map to guest = bad user" yanlış kullanıcı adı ile bağlanma girişimlerini sizin "guest account = nobody" olarak belirlediğiniz kullanıcı ismine yonlendirir. Boylece eğer birisi smbpasswd ile ayarlanmamış bir kullanıcı ile bağlanmaya calışırsa nobody olarak bağlanmış olacaktır.

Private paylaşım:

[private]
comment = Private Share
path = /paylaşım/olacak/dizin
browseable = no
read only = no

Eğer "browseable = no" kullanılırsa paylaşım grafiksel gezginlerde gorunmeyecektir. Orneğin Windowstaki "Ağ Bağlantılarım" veya Ubuntu altındaki "Yerler -> Ağ".

"path" paylaşımın yolunu gosterir. "read only = no" ile doğrulanmış kullanıcılar paylaşıma yazabilirler.

Son olarak , public paylaşım.

[public]
comment = Public Share
path = /paylaşım/olacak/dizin
read only = no
guest only = yes
guest ok = yes

"guest only = yes" ve "guest ok = yes" guest girişlerini acar ve kullanıcıları guest olarak bağlanmaya zorlar. [global] bolumu altında tanımladığınız guest hesabının /paylaşım/olacak/dizin dizinine yazabilmesi icin bu dizinde yazma hakkının olması gerekmektedir.

Not: Windows SMB paylaşımlarına ulaşmaya calışırken Windows kullanıcı ismini ve parolasını kullanır. Yukarıda kullandığınız "guest = bad user" olayı size public paylaşımlara sadece hatalı Samba kullanıcı adı ile bağlanmanızı sağlar. Eğer doğru kullanıcı adı ve hatalı bir parola verirseniz, bu durumda giriş başarısız olacak ve Windows sizden parola istediği bir prompt verecektir. Eğer Windows makinede de Ubuntudaki aynı kullanıcı ismini kullanıyorsanız istemeden doğru bir kullanıcı adı ile bağlanmaya calışırken hatalı parola vermiş olacaksınız demektir. Bunu engellemek icin iki şey yapabilirsiniz. Birincisi Windows kullanıcı adınızı değiştirebilirsiniz. İkincisi ise bu kullanıcı adını Samba parola dosyasından cıkartmalısınız:

Kod:
smbpasswd -x [kullanıcı_adı]
Not: Yukarıda "security = user" kullanılır. Private paylaşımlara ulaşmak icin kullanıcının smbpasswd icinde mevcut olduğundan emin olun. Bu kullanıcılar aynı zamanda makinenizde normal kullanıcı olarak da mevcut olmalılar. Kullanıcıları smbpasswd icine basitce

Kod:
smbpasswd -a [kullanıcı_adı]
komutunu ve bir parola vererek ekleyebilirsiniz.

--- İzinleri Ayarlamak ---

Yeni oluşturulan belgelerin izinlerini ayarlamak icin [global] bolumu altına şunu ekleyin:

create mask = 0644
directory mask = 0755

CUPS Yazıcılarını Paylaşma


-- Grafiksel Yapılandırma --

--- Ubuntu Yazıcı Suncusunu Yapılandırma ---

1. Menude Sistem -> Yonetim -> Yazdırma

2. Sol taraftaki "Yerel Yazıcılar" kısmından paylaşmak istediğiniz yazıcıyı secin. Sağ taraftaki "Policies" sekmesine tıklayın ve "Paylaşımlı" kutusunun işaretli olduğuna emin olun.

--- Ubuntu İstemcisi ---

1. Tekrar Sistem -> Yonetim -> Yazdırma bolumune gidin.

2. Ust sağdan "Yeni Yazıcı" kısmına tıklayın. Bir sonraki menuden "SAMBA ile Windows Yazıcı" bolumunu secin. Yukarıda yapılandırmış olduğunuz Ubuntu Samba Yazıcı Sunucu IP adresini sol taraftaki "smb://" bolumune yazın. "Goster" duğmesine tıklayın.

3. "SMB Gezgin" penceresinden yazıcıyı secin (Kucuk oklara tıklayın). Bir kez yazıcınızı sectikten sonra "Doğrulama gerekli" kısmını işaretleyin ve samba kullanıcı adınızı ve parolanızı girin. Daha sonra "doğrula" duğmesine tıklayın. Paylaşım olduğunda onaylanma mesajını goreceksiniz.

4. "İleri" duğmesine tıklayın ve yazıcınız ve istediğiniz başka bir diğer yazıcı icin suruculeri kurun.

--- Windows İstemcisi ---

1. Denetim Masası -> Yazıcılar bolumune gidin.

2. "Yazıcı Ekle" kısmına gelin. Yazıcı sihirbazı calışacaktır, devem edin. "Ağ Yazıcı" kısmını secin ve devam edin. "Bir yazıcı ara" kısmını işaretleyin ve devam edin. Bir sonraki pencerede, Ubuntu Samba Yazıcı Sunucunuza gidin ve devam edin. Yazıcı ve surucu kurulumu ile devam edin.


-- Elle Sunucu Yapılandırması --
Eğer yazıcılarınızı elle paylaştırmak istiyorsanız aşağıdakileri uygulayın:

Eğer oluşturulmadıysa paylaşımı kullancak Samba-kullanıcısını oluşturun.

smb.conf dosyası icinde aşağıdaki yapılandırma bulunan satırları bulup gosterildiği gibi değişikliği yapın:

########## Printing ##########

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
load printers = yes

# [...] // Some BSD printing stuff, do not edit if You do not need to

# CUPS printing. See also the cupsaddsmb( manpage in the
# cupsys-client package.
printing = cups
printcap name = cups

daha sonra Share Definitions bolumunde aşağıdaki değişiklikleri yapın:

# ======================= Share Definitions =======================
# [...] // File and Folder sharing, do not edit if You do not need to

[printers]
comment = All Printers
browseable = no
path = /tmp
printable = yes
public = yes
writable = no
create mode = 0700
printcap name = /etc/printcap
print command = /usr/bin/lpr -P%p -r %s
printing = cups

[printers] bolumu "printcap name" icinde adı gecen tum yazıcılar icin on tanımlı davranışları belirler. Bir ceşit bu yazıcıların nasıl paylaştırılacağını belirleyen şablondur bu. Bu şablon yukarıda "load printers" yes olarak ayarlandıysa gecerli olacaktır. Daha detaylı acıklama icin Samba belgesine bakabilirsiniz.

Sambayı yeniden başlatmayı unutmayın:

Kod:
sudo /etc/init.d/samba reload
Samba Guvenliği


Bu bolum sadece bir iki tavsiye verecektir, geniş caplı bir guvenlik bolumu değildir.

1. Networking Bolumu- "hosts allow" ve "hosts deny" kullanımı.

Kod:
# hosts allow = 127.0.0.1 192.168.1.0/24 hostal allow = 127.0.0.1 192.168.1.1 192.168.1.2 hosts deny = 0.0.0.0/0
Boylece "hostal allow" ile belirlenmiş herkesin harici yasaklanır.

2. Paylaşımlar

Bir paylaşım tanımlarken aşağıdaki secenekleri goz onunde bulundurun:

1. browseable = no
Boylece ağa goz atılırken paylaşımınız gorunmeyecektir.

2. users = kullanıcı1 kullanıcı2

Paylaşıma ulaşabilecek samba kullanıcıları (dikkat samba kullanıcıları)

Bir samba paylaşımı ayarlarken boylece ulaşacak kullanıcıları sınırlandırabilirsiniz.

[private]
comment = Private Share
path = /paylaşım/olacak/dizin
browseable = no
read only = no
users = kullanıcı1 kullanıcı2 kullanıcı3

Boylece sadece kullanıcı1, kullanıcı2 ve kullanıcı3 paylaşıma ulaşabilecektir.


İpucları / İzinler


Samba izinleri bazen ipucu olabilir.

-- Sunucu Tarafı --

1. Samba paylaşım isminiz [] icindeki kelimedir.

[private] = "private" icin paylaşım ismi

[secret] = "secret" icin paylaşım ismi

2. Samba paylaşımını bağlayabilmek icin sunucudaki samba kullanıcısı dizine ulaşmak icin yetkilere sahip olmalıdır.
Eğer /paylaşım/olacak/dizin root.root tarafından sahiplenmiş olup 770 izinlerine sahipse, sadece root bu paylaşımı bağlayabilir.

-- İstemci Tarafı --

1. Eğer tanımlama dosyası kullanmıyorsanız bağlama esnasında samba_kullanıcısını belirtmeyi unutmayın: -o username=samba_user

2. Samba paylaşımı uzerindeki izinler sunucuya bağlıdır.

Linux sunucular tum Linux izinlerini kullanır.

Windows paylaşımları Linux izinlerini kullanmaz. İzinleri samba paylaşımını bağlarken ayarlayabilirsiniz:
file_mode=660 ve dir_mode=770 (Bunlar izinlerdir, umask değerleri değildir):

file_mode=arg
Eğer sunucu CIFS Unix uzantılarını desteklemiyorsa bu dosyalar icin on tanımlı
kipin uzerine yazar.

dir_mode=arg
Eğer sunucu CIFS Unix uzantılarını desteklemiyorsa bu dizinler icin on tanımlı
kipin uzerine yazar.

Bu secenekler Windows uzerindeki paylaşımda olan tum dosya ve dizinler icin kullanılır ve değiştirilemez.

3. Samba paylaşımı uzerindeki izinler sizin umask ayarınız ile aynı olacaktır.

4. Samba paylaşımlarınızı Ip adresi yerine host (sunucu) ismi ile yapmak istiyorsanız, sunucunuzda /etc/hosts (C:WINDOWSsystem32driversetchosts for Windows) altına kaydedin.



Kaynak : forum.ubuntu
__________________