Redhat/CentOS/Oracle Üzerinden Samba Server(SMB/CIFS File Sharing) Kurulum ve Konfigürasyonu
Tags: samba, smb, cifs, linux
Published: 2021-09-14 20:21:02


Samba(**SMB/CIFS**) ağ üzerinden farklı işletim sistemleri arası dosya paylaşımına olanak tanıyan dosya paylaşım sistemidir. Bu klavuzda Linux üzerinde Samba server aracılığıyla paylaşılan belgelere diğer işletim sistemlerinin erişimi amaçlanmıştır.

**SUNUCU Tarafı**;

Servis kurulur
```javascript
yum install samba -y
```

Servisler çalıştırılır
```javascript
systemctl start smb.service
systemctl start nmb.service

systemctl enable smb.service
systemctl enable nmb.service
```

Kullanıcı oluşturalım. Aşağıdaki komut kullanıcının **home** dizinini de oluşturulur ve ben orayı kullanacağım. Ayrıca **/home** dizini kullanmak durumunda da değilsiniz. Kullanıcıları ayrı ayrı yönetmek açısından faydalı olabilir ama farklı dizin kullanırsanız tüm kullanıcıları o dizine de yönlendirebilirsiniz(hatta aşağıda göreceksiniz **valid user** kısmına **@group** ismide yapabilirsiniz sonra dahil edeceğiniz kullanıcıları ikincil grup olarak bu gruba ekleyebilirsiniz), kaldı ki orda da ayrı ayrı yönetebilirsiniz ve daha uygun da olabilir. Bu durumda(**/samba** dizini ele alınmıştır) ikinci satırdaki komutu çalıştırmanız daha uygun olur.

/home dizinini kullanmak için;
```javascript
useradd -s /sbin/nologin winuser
```

Oluşturduğunuz farklı dizini kullanmak için;
```javascript
useradd -M -d /samba/winuser -s /usr/sbin/nologin winuser
```

Samba bağlantısı için şifre atayalım, bilgiler “**/var/lib/samba**” altında saklanır.
```javascript
smbpasswd -a winuser
```

ilgili dizine örnek bir paylaşacağım dosya oluşturuyorum
```javascript
echo "merhaba smb/cifs paylaşımım" > /home/winuser/pyls.txt
```

Bu arada **SELinux** varsayılanda **home** dizin paylaşımını engelliyor, dosyaların haricinde **SELinux** açısından servisilerin de **boolen** tipi etiketleri var bu durumu aşağıdaki komutla gözlemleyebilirsiniz.
```javascript
getsebool -a | egrep -i samba
```

Aşağıdaki komutla da aktif edebilirsiniz ev tekrar yukarıda komutla on olduğunu gözlemleyebilirsiniz.
```javascript
setsebool -P samba_enable_home_dirs on
```

Daha sonrasında “**/etc/samba/smb.conf**”  dosyasına aşağıdaki gibi yapılandırıyoruz.
```javascript
[global]
...
server min protocol = LANMAN1
...


[winuser]
        comment = Redhat Samba Server
        path = /home/winuser/
        valid users = winuser
        browseable = Yes
        writable = Yes
        read only = No
        inherit acls = Yes
```

Servisler yeniden başlatılır
```javascript
systemctl restart smb.service
systemctl restart nmb.service
```

Ayrıca local **firewall** aktifse
```javascript
firewall-cmd --zone=public --add-service=samba --permanent
```

**Check smb.conf**
```javascript
testparm
```

**Current Samba connection**
```javascript
smbstatus
```


**KULLANICI** Tarafı;


**Linux üzerinden**,

İlk etapta aşağıdaki paket kurulmalıdır.
```javascript
yum install samba-client -y
```

Bağlantı testi için,
```javascript
smbclient -L 10.10.10.96 -U winuser
```

Smbclient ile login olup gözlemleyelim.
```javascript
smbclient //ip_address/shared -U smb_user%smb_pass

smbclient //10.10.10.96/winuser -U winuser%winuser
```

```javascript
smb: \> ?
?              allinfo        altname        archive        backup         
blocksize      cancel         case_sensitive cd             chmod          
chown          close          del            deltree        dir            
du             echo           exit           get            getfacl        
geteas         hardlink       help           history        iosize         
lcd            link           lock           lowercase      ls             
l              mask           md             mget           mkdir          
more           mput           newer          notify         open           
posix          posix_encrypt  posix_open     posix_mkdir    posix_rmdir    
posix_unlink   posix_whoami   print          prompt         put            
pwd            q              queue          quit           readlink       
rd             recurse        reget          rename         reput          
rm             rmdir          showacls       setea          setmode        
scopy          stat           symlink        tar            tarmode        
timeout        translate      unlock         volume         vuid           
wdel           logon          listconnect    showconnect    tcon           
tdis           tid            utimes         logoff         ..             
!
smb: \> l
  .                                   D        0  Sun Aug 22 16:34:48 2021
  ..                                  D        0  Sun Aug 22 16:30:27 2021
  .bash_logout                        H       18  Thu May 27 18:09:35 2021
  .bash_profile                       H      141  Thu May 27 18:09:35 2021
  .bashrc                             H      376  Thu May 27 18:09:35 2021
  pyls.txt                            N       24  Sun Aug 22 16:34:48 2021
```

Aşağıdaki gibi mount işlemini yapabilirsiniz.
```javascript
mount -t cifs -o username=winuser,pass=winuser //10.10.10.96/winuser /mnt
```

Aşağıdaki komutla da son mount durumlarını gözlemleyebilirsiniz.
```javascript
df -h

mount
```

Mount işleminin kalıcı hale gelebilmesi için /etc/fstab içine yazmayı unutmayın. Dilerseniz user, pass bilgilerini dosyadan da okutabilirsiniz. İlgili [link](https://askubuntu.com/questions/157128/proper-fstab-entry-to-mount-a-samba-share-on-boot) size yardımcı olacaktır.
```javascript
//10.10.10.96/winuser                      /mnt                    cifs 	username=winuser,pass=winuser	0 0
```

Ayrıca “**smb://10.10.10.96/winuser**” ile de hem **TUI** hem de **GUI** bağlanabilirsiniz.


**Windows** üzerinden,

Network – Map network drive...

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9tbdxpslvdv5wcq7ml7e.png)
 

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rk6blosqd1vk7ls91wi.png)
 



ref:

[computernetworkingnotes](https://www.computernetworkingnotes.com/linux-tutorials/how-to-configure-samba-server-in-redhat-linux.html) | [ubuntu](https://ubuntu.com/tutorials/install-and-configure-samba#1-overview)