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.
Table of Contents
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.