Samba

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla

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

Özetle: 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 araçlar topluluğudur. SMB ağ protokolünü kullanır ki bu Windows ağ uygulamasının kalbidir.

Samba şu işler için kullanılabilir:

  • Windows (veya Samba istemcileri) için bir sunucu vazifesi görme: dosya ve yazıcı paylaşımı. Buna PDF sahte-yazıcılar da dahildir. Böylece ağınızdaki her yazıcı PDF dosyaları yazabilir.
  • Bir Windows ağında alan denetleyicisi olarak iş görmek (kullanıcıları doğrulamak vb.)
  • Başka bazı karışık işleri yapmak. Örneğin, Windows alan denetleyicisini kullanarak Linux/UNIX kullanıcılarının doğrulamasını yapmak.

Samba GNU Genel Kamu Lisansı altında yayınlanan tamamen özgür bir yazılımdır. Samba hakkında daha fazla bilgiye samba.org'dan ulaşılabilir.

Sambaya "sizin" ihtiyacınız var mı?

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

  • Bir Windows makine üzerindeki paylaşılan dosya, sürücü 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 üzerinden kullanmak. CUPS yazıcıyı ağ üzerinden erişilebilir olarak ayarlayabilir.
  • İki Linux makine arasında dizin paylaşımı yapmak. Bir makine üzerinde NFS kullanabilir ya da FTP sunucu açabilirsiniz. Böylece 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 görmesini (dosya veya yazıcı sunucusu) istiyorsanız herhangi bir metotla sambayı kurun.

sudo apt-get install samba

İstemci

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

Eğer bir Samba sunucuya bağlanmak istiyorsanız (Samba çalıştıran bir Ubuntu ya da Windows sunucu) iki seçeneğ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 hiçbir şey yapmadan smbclient ile bağlanabilir. smbclient bir FTP bağlantısına benzer çalışı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. Çoğu kullanıcı bu tercihi kullanır. Herhangi bir metotla smbfs'yi kurabilirsiniz. Bu SMB paylaşımlarını bağlamak için gerekli paketleri kuracaktır:

sudo apt-get install smbfs

Bilgisayarı yapılandırma

Ağ yapılandırmasını Sistem -> Yönetim -> Ağ Araçları yoluyla açın.

Ortadaki Genel sekmesine tıklayarak devam ediyoruz.

Ayarlarınızı girin -

Alıntı
Host Ayarları 

Host adı:       <bilgisayarınız>
Alan adı:       <bulunduğunuz alan adı> 

Windows Ağı Oluştrma 

Windows ağı oluşturmayı işaretliyoruz

Tanım:       <Ne isterseniz>
Domain/Workgroup:  <alan adı , çalışma-grup isminiz>

Feisty ve Gutsy altında bu ayarlar Sistem -> Yönetim -> Paylaşılan Klasörler altındadır.

Not: Eğer bilmiyorsanız ağ yöneticinize sorabilirsiniz. Klasik çalışma grubu ismi "workgroup" veya "mshome" olabilir.

Buradaki önemli ayarlar zaten önceden doldurulmuş olan host ismi ve alan adı/çalışma grubu kısmıdır. Tüm pencerelerdeki Tamam tuşlarına basın ve Windows makinelerle iletişimin ilk kısmını böylece bitirmiş olun.

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

Not: Bir "Windows Ağı" bölümü seçmeden de devam edebilirsiniz.

Grafiksel yapılandırma

Bu bölüm grafiksel araçları tercih edenler içindir. Bu bölüm size Ubuntu ve Windows dışında SMB paylaşımlarını kullanmanız için çabuk başlangıç sağlayacaktır. GUI metodu kolay olmasına rağmen şu nedenlerden ötürü daha az güvenlidir:

  • Paylaşımlar genele açıktır (örneğin gezinebilirdir)
  • Paylaşımlar için parola konulamaz (herhangi biri tarafından bağlanılabilir)

Bir servis (sunucu) kuruduğunuzu ve istenmeyen erişimleri engellemek için ateş duvarı (firewall) kurmanız gerektiği konusunu aklınızdan çı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 göz gezdirin.

Ubuntu Sunucu

Bu bölüm Ubuntu'yu bir Samba sunucu olarak ayarlar.

Klasör paylaşma

Bir dizini paylaşmak için bu dizine erişim hakkınız olması gerekir. Ev dizininize gidin ve Belgelerim dizinine sağ tıklatın, açılan menüde "Dizini Paylaş" bölümünü seçin.

Eğer Samba kurulu değilse "Paylaşım servisi kurulmadı" mesajını alacaksınız. "Windows ağ desteğini (SMB) kur" şıkkını seçin ve "Unix ağ desteğini (NFS) kur" seçenğini iptal edin. Ardından "Servisleri kur" seçeneğini yürütün.

Eğer "samba.deb bulunamadı" gibi bir mesaj alırsanız terminali açın ve ardından şu komuyu yürütün:

sudo apt-get update

Ardından tekrar SMB desteğini kurun. Ubuntu sambayı indirip kuracaktır. Samba kurulduktan sonra Belgelerim dizinini sağ tıklayıp "Dizini Paylaş" seçeneğini işaretleyin. "Dizini Paylaş" penceresi çıkacaktır. "Windows ağları (SMB)" kısmını seçin ve aşağıda paylaşımınız için bir isim verin. Eğer dizinin yazılabilir olmasını da istiyorsanız "Sadece okunabilir" kısmındaki işareti kaldırın. "Paylaş" düğmesine tıklayın.

Windows XP sunucu

Bu bölüm XP'yi bir samba sunucu olarak ayarlar.

Klasör paylaşma

  1. Windows sunucuda paylaşmak istediğiniz klasöre gidin. Dizine sağ tıklayın ve "Paylaşım ve Güvenlik" sekmesine geçin. Açılan pencerede "Paylaşım" sekmesine geçin. "Ağ Kurulum Sihirbazı" seçeneğini tıklayarak ağınızdaki paylaşımları ayarlayın. Sihirbaza göre devam edin. Unutmayın ki ön tanımlı çalışma grubu ismi MSHOME'dur. Bunu istediğiniz gibi değiştirebilirsiniz fakat tüm bilgisayarlarınız aynı çalışma grubunda olmalıdır. Son olarak size "Dosya ve yazıcı paylaşımını aç" seçeneği sunulacaktır. Bu istediğiniz seçenektir, sihirbazda devam edin. Ayarların etkin olması için bilgisayarınızı yeniden başlatmanız gerekecektir.
  2. Bilgisayar açıldıktan sonra paylaşmak istediğiniz klasöre gidin. Sağ tıklayın ve "Paylaşım ve Güvenlik" sekmesine geçin. Açılan pencerede "Paylaşım" sekmesine geçin. "Ağda bu klasörü paylaş" seçeneğini işaretleyin. Klasöre bir paylaşım ismi verin. Bu Ubuntu kullanıcılarına Samba ile sadece okuma hakkı verecektir. Okuma/yazma erişimi için "Ağ kullanıcılarına dosyalarımı değiştirme izni ver" seçeneğini işaretleyin. Uygula düğmesine tıklayın ve pencereyi kapatın.

Samba sunucu elle yapılandırması

Yapılandırma /etc/samba/smb.conf dosyasını okuyarak ve düzenleyerek olur. Bu dosya samba sunucu için yapılandırma dosyasıdır. Bazı grafiksel araçlar da mevcuttur. Örneğin "kdenetwork-filesharing" ve Swat gibi.

KDE için ciddi anlamda güzel bir Samba yapılandırma aracı mevcuttur. "kdenetwork-filesharing" paketini kurduktan sonra KDE Kontrol Merkezini açarak ulaşabilrsiniz. İnternet & Ağ > Samba altından ulaşabilirsiniz ve oldukça kolay kullanımı vardır.

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

Aşağıdaki ip uçları herhangi bir araç kurmadan komut satırı kullanılarak uygulanacaktır. Çok zor olmamakla beraber yazım hatalarına dikkat etmeniz yararlı olacaktır.

İlk önce bir uçbirimi açın. Ardından smb.conf dosyasını açmak için şu komutu yazın:

sudo gedit /etc/samba/smb.conf

smb.conf dosyası şu şeklide birkaç bölüme ayrılmıştır:

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

Yorumlar # veya ; karakterleri ile başlar.

Bir Samba sunucusuna bağlanma

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

Ubuntu istemci

Ubuntu istemcide üst paneldeki Yerler -> Ağ bölümünü kullanın. "Windows ağ" simgesini göreceksiniz ve paylaşılan dizinlerin burada erişilebilir olması gerekir. Parola sorulacaktır, boş bırakın ve Bağlan düğmesine tıklayın.

Alternatif Yol: Üst menüden Yerler - Sunucuya Bağlan bölümünü seçin. "Servis Türü" olarak "Windows paylaşımını" seçin. "Sunucu:" kısmına sunucunun IP numarasını, "Paylaşım:" kısmına paylaşılan dizinin ismini yazın. "Bağlan" düğ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ı düzenleyin ve samba sunucunuzu ekleyin (Sentaks: IP Adresi host-adı)

192.168.1.100    host-adı

host-adı = samba sunucu isminiz

Windows XP istemci

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

Alternatif Yol: Üst menüden Araçlar -> Ağ Sürücüsü Bağlan kısmına geçin. SMB paylaşımınız için uygun bir harf seçin (Ön tanımlı z:). "Dizin:" kısmına \\sama_paylaşım_ip_adresi\paylaşım olacak şekilde adresi girin. Windows'u açtığınızda kendiliğinden bu paylaşıma bağlanmak istiyorsanız, "Girişte tekrar bağlan" kısmını işaretleyin. "Bitti" düğmesine tıklayın. Bir diyalog kutusu açı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:\WINDOWS\system32\drivers\etc\hosts dosyasını düzenleyin ve samba sunucunuzu ekleyin. (Sentaks: IP Adresi host-adı)

192.168.1.100    host-adı

host-adı = samba sunucu isminiz

Samba istemci elle yapılandırması

Bu bölümde bir Ubuntu istemci üzerindeki SMB dosya dosya sunucusunu elle yapılandırmayı bağlanmayı göreceğ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. Örneğ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:

smbclient -L //sunucu -U kullanıcı

Bir SMB paylaşımına bağlanma:

smbclient //sunucu/paylaşım -U kullanıcı

Daha sonra parola girilir.

Doğrudan şöyle de bağlanılabilir:

smbclient //sunucu/paylaşım -U kullanıcı%parola

ancak burada parola ekranda görülecektir.

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

smb: \>

Kullanılabilecek komutları görmek için help yazabilirsiniz.

CIFS

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

linux-cifs.samba.org

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

Ön 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 için SUID ayarlamalısınız. Ancak sudo'yu yapılandırmak tavsiye edilen yoldur. sudo visudo ile yapılandırılmalıdır.

İki seçeneğ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 üzerinden izinleri vereceksiniz. samba grubu üzerinden gidelim.

sudo groupadd samba

sudo adduser kullanıcı_adı samba

kullanıcı_adı yerine istediğiniz kullanıcının adını yazın.

sudo visudo

Grup bölümü altına samba paylaşımlarını bağlayacak grubu girin.

Add a line  in the "group" section :
## Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%samba   ALL=(ALL) /bin/mount,/bin/umount,/sbin/mount.cifs,/sbin/umount.cifs

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" üzerinde "paylaşım" dizinini ~/mnt (Ev dizini altında olacaktır) dizini altına bağlayabilirsiniz.


[[mkdir]]   ~/mnt<br>
sudo [[mount]]  -t cifs //suncu_ip_adresi/paylaşım ~/mnt -o username=samb_user,noexec

Not: Buradaki samb_user samba sunucu üzerindeki kullanıcı adınızdır ve bu istemci üzerindeki kullanıcı adınızdan farklı olabilir. "noexec" seçenği SMB paylaşımı üzerindeki çalışabilir betiklerin çalışmasını engeller.

Önce sudo için parola ardından da paylaşımı bağlamak için samba_kullanıcı parolanız sorulacaktır.

Ayırmak için:

sudo [[umount Komutu|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 düzenleyici ile, Windows/Samba kullanıcı hesap bilgilerini içeren şu dosyayı oluşturun:

sudo gedit /etc/samba/user

aşağıdaki gibi iki satır içermelidir:

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ı için sunucu üzerinde belirlenmiş parolanızdır.

Dosyayı kaydedip kapatın.

Güvenlik için dosyadaki izinleri değiştirin:

sudo chmod 0400 /etc/samba/user

Şimdi, paylaşımınızın bağlanacağı dizini oluşturun. Örneğin /media/samba_paylaşım

sudo mkdir /media/samba_paylaşım

Herhangi bir düzenleyici kullanarak /etc/fstab dosyasına SMB paylaşımınız için aşağıdaki gibi bir satır ekleyin.

sudo cp /etc/fstab /etc/fstab.yedek
sudo gedit /etc/fstab

SMB paylaşımınız için 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 açılışta kendiliğinden bağlanacaktır.

Paylaşımı hemen bağlamak için:

sudo mount /media/samba_paylaşım

Şu şekilde de ayırabilirsiniz:

sudo umount /media/samba_paylaşım

Eğer güvenlik icabı kendiliğinden bağlanmasını istemiyor fakat her seferinde ip adresi ve paylaşım yerini de göstermek istemiyorsanız şöyle 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ı düzenleyin. Parola satırını silin, sadece kullanıcı satırı kalsın. Böylece siz bu paylaşımı bağlamak istediğinizde parola sorulacaktır. Elle bağlamak için:

sudo mount /media/samba_paylaşım

SMBFS

Not: Bu metot hala çalışmasına rağmen CIFS'de de belirtildiği üzere artık kullanılmamaktadır ve kernelden kaldırılmak için beklemektedir.

Ç.N: CIFS kullanılabileceğinden Türkçe'ye çevrilen bu belgede yer verilmeyecektir.

Genel Ayarlar

Burada grafiksel bir ağ aracında (çalışma grubu veya wins sunucu gibi) bulunan birçok satır göreceksiniz. Eğer tüm isteklerinizi zaten yaptıysanız bu bölümü geçin. 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 gerçek 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 için önemli olan kısım dosya paylaşımı. Samba paylaşımları köşeli parantezler içinde yer alır, [], ve takip eden satırlara seçenekler ekleyerek yapılandırılır. Birçok seçenek 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 açmak 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

Görüldüğü üzere "browseable = yes" ile paylaşıma açıp "writable = yes" ile yazılabilir kıldık. Bu sizin ev dizininizi paylaşıma açmayı sağlar. Son olarak kullanıcı atamalıyız.

sudo  smbpasswd -a kullanıcı_adı

şöyle 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.

sudo /etc/init.d/samba reload

Dosya Paylaşımı (Gelişmiş)

Samba temel dosya paylaşımı ile başlamıştık. Yukarıdaki yönergeler temel paylaşım için 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 çalışacağını belirleyebilirsiniz. smb.conf dosyasında [global] bölümünün 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 çalışmasını istediğiniz karttır. 24 sayısı ise C-Sınıfı ağdaki ön tanımlı subnettir. Bu ağınıza göre değişecektir.

"bind interfaces only" seçeneğ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 tüm Ip adreslerini reddedecektir.

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

Öncelikle bunu global bölümünde 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 tüm Windows sürümleri için 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 yönlendirir. Böylece eğer birisi smbpasswd ile ayarlanmamış bir kullanıcı ile bağlanmaya çalışı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 görünmeyecektir. Örneğin Windowstaki "Ağ Bağlantılarım" veya Ubuntu altındaki "Yerler -> Ağ".

"path" paylaşımın yolunu gösterir. "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 açar ve kullanıcıları guest olarak bağlanmaya zorlar. [global] bölümü altında tanımladığınız guest hesabının /paylaşım/olacak/dizin dizinine yazabilmesi için bu dizinde yazma hakkının olması gerekmektedir.

Not: Windows SMB paylaşımlarına ulaşmaya çalışı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 çalışırken hatalı parola vermiş olacaksınız demektir. Bunu engellemek için iki şey yapabilirsiniz. Birincisi Windows kullanıcı adınızı değiştirebilirsiniz. İkincisi ise bu kullanıcı adını Samba parola dosyasından çıkartmalısınız:

smbpasswd -x [kullanıcı_adı]

Not: Yukarıda "security = user" kullanılır. Private paylaşımlara ulaşmak için kullanıcının smbpasswd içinde mevcut olduğundan emin olun. Bu kullanıcılar aynı zamanda makinenizde normal kullanıcı olarak da mevcut olmalılar. Kullanıcıları smbpasswd içine basitçe

smbpasswd -a [kullanıcı_adı]

komutunu ve bir parola vererek ekleyebilirsiniz.

İzinleri ayarlamak

Yeni oluşturulan belgelerin izinlerini ayarlamak için [global] bölümü 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. Üst panelden Sistem -> Yönetim -> Yazdırma

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

Ubuntu istemcisi

1. Sistem -> Yönetim -> Yazdırma bölümüne gidin.

2. Üst sağdan "Yeni Yazıcı" kısmına tıklayın. Bir sonraki menüden "SAMBA ile Windows Yazıcı" bölümünü seçin. Yukarıda yapılandırmış olduğunuz Ubuntu Samba Yazıcı Sunucu IP adresini sol taraftaki "smb://" bölümüne yazın. "Göster" düğmesine tıklayın.

3. "SMB Gezgin" penceresinden yazıcıyı seçin (Küçük oklara tıklayın). Bir kez yazıcınızı seçtikten sonra "Doğrulama gerekli" kısmını işaretleyin ve samba kullanıcı adınızı ve parolanızı girin. Daha sonra "doğrula" düğmesine tıklayın. Paylaşım olduğunda onaylanma mesajını göreceksiniz.

4. "İleri" düğmesine tıklayın ve yazıcınız ve istediğiniz başka bir diğer yazıcı için sürücüleri kurun.

Windows istemcisi

1. Denetim Masası -> Yazıcılar bölümüne gidin.

2. "Yazıcı Ekle" kısmına gelin. Yazıcı sihirbazı çalışacaktır, devem edin. "Ağ Yazıcı" kısmını seçin 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 sürücü 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ı içinde aşağıdaki yapılandırma bulunan satırları bulup gösterildiğ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 bölümünde 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] bölümü "printcap name" içinde adı geçen tüm yazıcılar için ön tanımlı davranışları belirler. Bir çeş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 geçerli olacaktır. Daha detaylı açıklama için Samba belgesine bakabilirsiniz.

Sambayı yeniden başlatmayı unutmayın:

sudo /etc/init.d/samba reload

SMB Paylaşımlarını Gezinme

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

Bilgisayarım menüsünü açın, Ağ'a tıklayın. Bir "Windows ağ" simgesi göreceksiniz, açın. Bir sonraki pencerede ağınızda bulunan bütün alan adı/çalışma-grupları görülecektir. Her alan adı/çalışma-grubu altında bilgisayarları göreceksiniz (tabi paylaşım yapanları). Bilgisayarların paylaşımlarına ulaşmak için çift tıklayın. Daha kolay olabilir mi?

Bir bilgisayarın paylaşımlarını göstermeden önce sistem sizden bir kullanıcı adı ve parola sorabilir. Bağlanmak istediğiniz bilgisayar için geçerli parola ve kullanıcı ismini girmeniz gerekir. Ek olarak bu parolayı keyring ile daha kullanışlı olması açısından saklayabilirsiniz.

Not: Ön tanımlı samba kurulumu parolalar ile eşleşme yapmaz. Bunu yapmak için Windows makineden Ubuntu ev dizinine ulaşmak isteyen her kullanıcı için "smbpasswd" komutunu yürütmek zorunda kalabilirsiniz.

Samba Güvenliği

Bu bölüm sadece bir iki tavsiye verecektir, geniş çaplı bir güvenlik bölümü değildir.

1. Networking Bölümü- "hosts allow" ve "hosts deny" kullanımı.

# 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

Böylece "hostal allow" ile belirlenmiş herkesin harici yasaklanır.

2. Paylaşımlar

Bir paylaşım tanımlarken aşağıdaki seçenekleri göz önünde bulundurun:

  • browseable = no

Böylece ağa göz atılırken paylaşımınız görünmeyecektir.

  • 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 böylece 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

Böylece sadece kullanıcı1, kullanıcı2 ve kullanıcı3 paylaşıma ulaşabilecektir.

İpuçları / İzinler

Samba izinleri bazen ipucu olabilir.

Sunucu Tarafı

1. Samba paylaşım isminiz [] içindeki kelimedir.

[private] = "private" için paylaşım ismi
[secret] = "secret" için paylaşım ismi

2. Samba paylaşımını bağlayabilmek için sunucudaki samba kullanıcısı dizine ulaşmak için 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ı üzerindeki izinler sunucuya bağlıdır.

Linux sunucular tüm 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 için ön tanımlı 
    kipin üzerine yazar.
dir_mode=arg
         Eğer sunucu CIFS Unix uzantılarını desteklemiyorsa bu dizinler için ön tanımlı 
    kipin üzerine yazar.

Bu seçenekler Windows üzerindeki paylaşımda olan tüm dosya ve dizinler için kullanılır ve değiştirilemez.

3. Samba paylaşımı üzerindeki 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:\WINDOWS\system32\drivers\etc\hosts for Windows) altına kaydedin.