Penjelasan Lengkap Konfigurasi Samba: Sintaks smb.conf

26 Jan 2026
By Rosyid Majid

Samba Configuration Explained

Dokumen ini memberikan penjelasan mendalam mengenai sintaks konfigurasi Samba yang umum ditemukan pada file /etc/samba/smb.conf.
Ditujukan untuk membantu administrator memahami fungsi setiap directive, alasan penggunaannya, serta kapan konfigurasi tersebut sebaiknya diterapkan.

Contoh Konfigurasi

[global]
   workgroup = WORKGROUP
   server string = Samba File Server
   netbios name = FILESERVER
   security = user
   map to guest = bad user
   encrypt passwords = yes
   passdb backend = tdbsam

   interfaces = lo eth0
   bind interfaces only = yes

   log file = /var/log/samba/log.%m
   max log size = 1000

   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   use sendfile = yes

[Public]
   path = /srv/samba/public
   browseable = yes
   writable = yes
   guest ok = yes
   create mask = 0664
   directory mask = 0775

[Private]
   path = /srv/samba/private
   browseable = yes
   read only = no
   valid users = @staff
   write list = @staff
   create mask = 0660
   directory mask = 0770
   force group = staff

[homes]
   browseable = no
   read only = no

1. Global Settings

Bagian [global] mendefinisikan perilaku server Samba secara keseluruhan serta kebijakan keamanannya.

a. Identitas Server

Sintaks Deskripsi
workgroup = WORKGROUP Menentukan nama workgroup Windows. Default umum adalah WORKGROUP.
server string = Samba File Server Deskripsi server yang tampil di network browser.
netbios name = FILESERVER Nama NetBIOS server yang terlihat di Windows Explorer.

b. Pengaturan Keamanan

Sintaks Deskripsi
security = user Mode autentikasi standar. Klien harus login menggunakan username dan password Samba.
map to guest = bad user Username yang tidak valid akan dipetakan ke akun guest.
encrypt passwords = yes Wajib untuk Windows modern (Windows 7–11).
passdb backend = tdbsam Menyimpan kredensial user Samba di database lokal TDB.

c. Networking & Binding Interface

Sintaks Deskripsi
interfaces = lo eth0 Membatasi Samba hanya berjalan pada interface tertentu.
bind interfaces only = yes Mencegah Samba mendengarkan interface lain (meningkatkan keamanan).

d. Konfigurasi Logging

Sintaks Deskripsi
log file = /var/log/samba/log.%m Membuat file log terpisah per klien (%m = hostname klien).
max log size = 1000 Membatasi ukuran log hingga 1000 KB per klien.

e. Optimasi Performa

Sintaks Deskripsi
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 Mengoptimalkan performa TCP dan mengurangi latensi.
use sendfile = yes Mengaktifkan zero-copy transfer untuk performa tinggi saat mengirim file besar.

Catatan: Pada versi Samba terbaru, beberapa socket options mungkin diabaikan, namun masih sering digunakan dalam dokumentasi.

2. Share Settings (Per Folder)

Setiap share mendefinisikan aturan akses untuk direktori tertentu.

a. [Public] - Contoh Share Publik

[Public]
   path = /srv/samba/public
   browseable = yes
   writable = yes
   guest ok = yes
   create mask = 0664
   directory mask = 0775

Penjelasan

Sintaks Fungsi
path = /srv/samba/public Direktori fisik pada server.
browseable = yes Share terlihat saat browsing jaringan.
writable = yes Klien dapat menulis file.
guest ok = yes Mengizinkan akses tanpa autentikasi.
create mask = 0664 Permission default file baru.
directory mask = 0775 Permission default direktori baru.
Share publik hanya disarankan untuk jaringan yang terpercaya.
b. [Private] – Share dengan Pembatasan User & Grup
Sintaks Fungsi
valid users = @staff Hanya user dalam grup staff yang bisa mengakses.
write list = @staff Hak tulis hanya untuk grup staff.
force group = staff Semua file akan otomatis menjadi milik grup staff.
create mask = 0660 File baru: rw-rw----.
directory mask = 0770 Direktori baru: rwxrwx---.

3. Share Khusus [homes]

[homes]
   browseable = no
   read only = no

Fungsi

  • Membuat share personal otomatis untuk setiap user
  • Terhubung langsung ke /home/username

Penjelasan

Sintaks Fungsi
browseable = no Menyembunyikan home directory dari browsing jaringan.
read only = no User dapat menulis di home directory miliknya sendiri.

4. Modul VFS (Opsional)

Untuk mengaktifkan fitur Recycle Bin (Trash):

vfs objects = recycle
recycle:repository = .recycle
recycle:keeptree = yes
recycle:versions = yes

Fungsi

  • File yang dihapus dipindahkan ke .recycle
  • Struktur direktori tetap dipertahankan
  • Menyimpan beberapa versi file yang dihapus

5. Variabel (Macro)

Macro memungkinkan konfigurasi yang dinamis dan otomatis.

Macro Arti
%U Username terautentikasi
%G Grup utama
%H Home directory user
%m Hostname klien
%I IP address klien
%N Nama NetBIOS server
Contoh Penggunaan
log file = /var/log/samba/%U.log

Membuat satu file log untuk setiap user.

6. Perintah Penting Samba

Perintah Deskripsi
testparm Memvalidasi sintaks konfigurasi Samba.
systemctl restart smbd Restart service Samba.
smbpasswd -a username Menambahkan user Samba.
smbclient -L localhost -U user Menampilkan daftar share untuk pengujian.

Kesimpulan

Memahami sintaks Samba sangat penting untuk membangun file server yang aman, stabil, dan mudah dikelola. Dengan konfigurasi global, permission share, dan kontrol user yang tepat, Samba dapat digunakan mulai dari home lab hingga lingkungan enterprise.