Linux Samba Kurulum ve Ayarları 2019

Samba, diğer işletim sistemlerinin de dahil olduğu bir network ağı kurar. İstediğiniz klasörleri okuma, yazma gibi izinler vererek bir paylaşım ağı kurabilirsiniz. Linux üzerinde oluşturduğunuz kullanıcıları belirli gruplar dahilinde paylaşım izinleri vererek düzenli bir ağ paylaşımı oluşturabilirsiniz. Bilindiği gibi windows işletim sistemlerinde de ağ klasör paylaşımı yapılabiliyor ancak benim en çok sıkıntı çektiğim konu paylaşım izinleri oldu. Bu nedenle kendi çalıştığım iş yerinde şuan 2 adet samba fileserver çalışmakta ve istikrarlı bir şekilde çalışmaktadır. Aşağıda kurulum kısmından ayarlar kısmına kadar tek tek anlatmaya çalışacağım. İlk başta biraz karışık gibi gelse de öğrendikten sonra paylaşım klasörü açma, şu gruptakiler okuma olsun ama yazma olmasın gibi ayarları yapmak oldukça kolay olacaktır. Ben kurulum ve ayarlamaları ubuntu ve centos işletim sistemlerinde sorunsuz bir şekilde çalıştırabildim. Diğer linux dağıtımlarında da çok farklı olacağını sanmıyorum.

Kurulum:

centos için:

1
yum install samba samba-client samba-common

,

ubuntu için:

1
apt-get install samba

Kurulum sırasında sudo kullanmanız gerekebilir, bu tip ince ayrıntıları bildiğinizi düşünerek atlıyorum.

Samba’nın konfigürasyon dosyası /etc/samba/smb.conf dosyası içerisinde yer almaktadır. Tüm ayarları buradan yapacağız. Aşağıda örnek smb.conf dosyasını görebilirsiniz, tek tek açıklamaya çalışacağım.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
log file = /var/log/samba/%m.log
log level = 3
max log size = 1000
syslog = 0
security = user
server role = standalone server
map to guest = Bad User

[paylasim]
comment = Paylaşılan klasör
browseable = yes
path = /var/paylasim
guest ok = no
read only = no
create mask = 0644
directory mask = 0700
writable = yes
valid users = @kullanicilar

[global] olan yerdeki tanımlamalar sambanın genele ayarlarını ifade etmektedir. [paylasim] ise paylaştığınız klasörü ifade etmektedir. orada valid users = @kullanicilar ifadesi ise kullanicilar grubuna dahil olan tüm kullanıcılar bu paylaşıma giriş yapabilir demektir. Tabiki kendi kullanıcı adı ve şifrelerini kullanmaları şartıyla.

Yukarıdaki basit tanımlardan sonra bir senaryo üzerinden ilerleyelim. Örneğin home klasörümüzde oluşturduğumuz tüm kullanıcılar, kendi klasörleri paylaşım yapsın. Windows üzerinden kullanıcı adı ve şifre girişi yaptığımızda hangi kullanıcı ile girdiysek o kullanıcının klasörüne erişim sağlayalım.

1
2
3
4
5
6
7
8
9
10
[homes]
comment = Home Directories
browseable = no
path = /sdb1/homes/%S
guest ok = no
read only = no
create mask = 0644
directory mask = 0700
writable = yes
valid users = %S

Yukarıdaki kısmı açıklayalım.
path = /sdb1/homes/%S dediğimiz alan kullanıcıların klasörlerinin tutulduğu alandır. sdb1 diskini ben daha önce mount ettiğimden bu şekilde bir path verdim.
guest ok = no demişim, yani ziyaretçi (anonymous) hesap giremesin.
read only = no, burayı yes yaparsam kullanıcı giriş yapar ancak sadece okuma izninine sahip olur.
browseable = no ise bu klasörün network paylaşım penceresinde görünmemesini sağlayacak. Yani windows’ta my network place açtığınızda samba sunucusuna girdiğinizde herhangi bir paylaşım yapılmış klasör görmeyeceksiniz. Zaten amaç her kullanıcının klasörünü paylaşmak olduğu için doğal olarak browseable’ın no olması lazım.
create mask = 0644 dediği ise o klasörde oluşturacağınız dosyaların izinlerini ifade etmektedir.
directory mask = 0700 ise create mask ile aynıdır ancak sadece klasörlere uygulanır.
valid users = %S ‘de %S’in anlamı kullanıcı adı’dır.

Yukarıdaki işlemleri yaptıktan sonra

1
2
systemctl restart nmb
systemctl restart smb

veya

1
2
systemctl restart nmbd
systemctl restart smbd

Samba’yı yeniden başlatarak windows tarafında deneme yapabilirsiniz. Ancak windows tarafında ilgili paylaşıma ulaşmak için şunu yapmalısınız:

1
 \\sunucu_adi\kullanici_adi

Kullanışlı komutlar:

1
 pdbedit -L

: smbpasswd kayıtlı kullanıcıları gösterir.

1
 smbclient \\sunucu_adi\klasor -U kullanici_adi

: shell üzerinden paylaşılan klasöre bağlantı kurmaya çalışır.

1
 smbpasswd -x kullanici_adi

: kullanıcıyı samba üzerinden kaldırır.

1
 smbpasswd -a kullanici_adi

: kullanıcıyı samba üzerinden ekler (yeni şifre soracaktır).

1
 smbpasswd -e kullanici_adi

: kullanıcıyı samba üzerinden enable eder.

 

Takıldığınız yer olursa yardımcı olmaya çalışırım.

You may also like...

2 Responses

  1. Fatih dedi ki:

    Merhaba,
    Bütün Ayarları yaptığım halde windowstan yada bir cihazdan paylaşıma girmeye çalıştığımda “public=no” demişsem kullanıcı adını ve şifreyi kabul etmiyor. “public=yes” demişsem zaten şifre sormuyor. Nerede hata yapıyorum acaba? Samba nın önceki güncellenmemiş kurulumlarında böyle bir sorun yok. Ne değişti acaba?

    • serdarkok dedi ki:

      conf dosyanızı gönderebilirseniz bakabilirim. bazen windows için özel ayarlar gerekebiliyor. Bir de paylaşım yaptığınız klasörlerin path kısımları yanlış olabilir. Ayrıca log dosyalarına da göz atabilirsiz. Orada hatalar mutlaka loglanmıştır. (/var/log/samba)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Güvenlik Sorusu *