Episode ini memandu instalasi Samba di Ubuntu/Debian maupun RHEL family, mengaktifkan service smbd dan nmbd, lalu menulis konfigurasi dasar smb.conf: bagian [global] dengan workgroup, server string, dan security = user, serta bagian [share] dengan path, valid users, dan read only. Kalian juga memvalidasi konfigurasi dengan testparm.

Setelah memahami arsitektur di episode 2, saatnya aksi nyata: memasang Samba dan membuatnya berjalan. Di episode 3 kita menginstall paket samba, mengaktifkan daemon smbd dan nmbd, menulis smb.conf dasar yang aman, dan — yang sering dilupakan — memvalidasi konfigurasi dengan testparm sebelum daemon membaca hasil edit. Kebiasaan "edit → testparm → reload" adalah disiplin yang akan menyelamatkan kalian sepanjang series ini.
sudo apt update
sudo apt install -y samba smbclientPaket samba membawa smbd, nmbd, dan tool inti; smbclient kalian pakai untuk menguji share. Verifikasi versi:
smbd --versionUntuk series ini targetnya Samba 4.24.x — misal Version 4.24.5. Jika distribusi menyediakan versi lebih tua, konsepnya tetap sama (episode 17 membahas perbedaan versi).
sudo dnf install -y samba samba-clientNama service-nya sama (smb dan nmb adalah alias untuk smbd/nmbd). Jangan lupa siapkan firewall — kita urus lengkap di episode 13.
sudo systemctl enable --now smbd nmbd
sudo systemctl status smbd --no-pagersystemctl status smbd harus menampilkan active (running). Cek juga bahwa daemon mendengarkan port yang benar:
sudo ss -tlnp | grep -E "(139|445)"445/tcp (SMB modern) dan 139/tcp (NetBIOS) harus muncul. Ada dua port karena smbd mendengarkan keduanya; kita bahas dampaknya terhadap keamanan di episode 13.
Semua pengaturan "kepribadian server" ada di bagian [global]. Berikut titik awal yang wajar:
[global]
workgroup = WORKGROUP
server string = %h server (Samba %v)
security = user
map to guest = never
server min protocol = SMB2_10
logging = file
log file = /var/log/samba/log.%m
max log size = 1024Pembeda kunci di bagian ini:
workgroup = WORKGROUP: nama workgroup/NetBIOS default — klien di luar domain akan bergabung ke sini.server string = %h server (Samba %v): deskripsi yang tampil di klien saat browsing; %v mengganti dengan versi Samba.security = user: setiap koneksi harus diautentikasi dengan username/password Samba lokal — mode paling umum untuk file server mandiri.map to guest = never: jangan turunkan akses anonim ke guest — pilihan aman default.server min protocol = SMB2_10: tolak SMB1 sejak awal (konsisten dengan default 4.11+).logging/log file/max log size: log per-mesin klien (%m) ke /var/log/samba/ dengan rotasi otomatis — penting untuk episode 14 (audit).Setiap folder yang ingin dibagikan adalah bagian baru. Ini contoh minimal yang benar:
[public]
path = /srv/public
browseable = yes
read only = no
valid users = arman
comment = Berbagi file timPerhatikan polanya: path menunjuk direktori, browseable mengontrol visibilitas di daftar share, read only/writable menentukan akses tulis, dan valid users membatasi siapa yang boleh masuk. Interaksi antara opsi ini dan permission filesystem akan kita bedah tuntas di episode 4.
Setelah mengedit smb.conf, jalankan testparm — ia membaca file, melaporkan syntax yang salah, dan mencetak konfigurasi efektif:
testparmOutput akhirnya berisi konfigurasi lengkap seperti yang Samba akan pakai. Jika ada baris yang tidak dikenal, testparm menampilkan peringatan Unknown parameter — perbaiki sebelum lanjut. Bandingkan juga dengan versi tersembunyi untuk memastikan tidak ada syntax typo:
testparm -s > /tmp/effective.conf && diff /etc/samba/smb.conf /tmp/effective.confdiff di atas menunjukkan bagian mana yang diubah Samba dari default — misal daemon menambahkan parameter bawaan. Ini cara cepat melihat "apakah file saya valid" tanpa menebak.
Setelah testparm bersih, muat ulang tanpa restart penuh:
sudo smbcontrol all reload-configsmbcontrol all reload-config menyuruh semua daemon membaca ulang file — jauh lebih halus daripada systemctl restart, karena koneksi klien yang sedang aktif tidak diputus.
Warning
Kesalahan paling umum pemula: mengedit smb.conf, lalu langsung systemctl restart smbd tanpa testparm. Satu baris salah syntax membuat daemon gagal start — dan jika di sistem jarak jauh, kalian kehilangan akses SMB sama sekali. Urutan yang benar selalu: edit → testparm → smbcontrol all reload-config.
Cek bahwa share benar-benar terpublikasi:
smbclient -L localhost -U armanKalian akan melihat public dalam daftar share bersama deskripsi server string. Kalau map to guest = never aktif dan user belum didaftarkan di Samba, autentikasi akan ditolak — itulah tanda kita lanjut ke episode 5 (user management). Untuk sekarang, cukup pastikan share muncul di daftar.
Inti yang harus dibawa pulang:
apt install samba (Debian/Ubuntu) atau dnf install samba (RHEL family); target versi 4.24.x.smbd dan nmbd via systemd; pastikan port 139/445 terbuka.[global] mengatur identitas server: workgroup, server string, security = user.path, browseable, read only/writable, dan valid users.testparm lalu reload via smbcontrol all reload-config.Di episode 4 selanjutnya kita akan mendalami share dasar & permission: membangun [data] dengan path=/srv/data, force user/force group, lalu memetakan interaksi antara permission filesystem dan share options (valid users, write list). Di sinilah kebanyakan misteri "kok nggak bisa nulis?" terjawab.