Peta pada Chapter File Server
menunjuk Samba sebagai jalan utama untuk kantor campur Windows dan Linux. Samba adalah implementasi open source dari protokol SMB/CIFS — bahasa yang dipakai Windows untuk berbagi file dan printer sejak era DOS — sehingga komputer Windows membuka share Linux langsung dari File Explorer tanpa perangkat lunak tambahan. Pada Chapter ini kita bedah anatomi smb.conf sebagai jantung konfigurasinya, cara membuat user Samba, cara memasang share dari klien Linux, sampai kebiasaan aman di baliknya. Paket Samba tidak terpasang di mesin latihan, jadi kita bekerja dengan file konfigurasi fixture dan memeriksa formatnya dengan alat yang selalu ada: grep dan awk.
Protokol SMB dan Dua Daemon Samba #
Instalasi apt install samba menyalakan dua daemon. smbd mengerjakan tugas inti: berbagi file dan printer lewat SMB, mendengarkan TCP port 445 (dan 139 untuk klien sangat lama). nmbd mengurus penamaan NetBIOS — mekanisme lama untuk menemukan server lewat nama di jaringan lokal — pada UDP port 137 dan 138. Di jaringan modern yang sudah memakai DNS, nmbd sering dinonaktifkan; penemuan share cukup lewat nama host atau alamat IP.
Klien Samba pun disertakan paket yang sama. smbclient adalah klien bergaya FTP untuk mencoba share dari terminal — berguna menguji konfigurasi tanpa perlu memasang apa pun. Untuk daftar share yang ditawarkan server-kantor:
smbclient -L //server-kantor -U budiPerintah di atas meminta password user budi, lalu menampilkan tabel share beserta komentarnya. Tanda //server-kantor adalah cara penulisan alamat SMB: dua garis miring, nama host, lalu nama share setelahnya.
Anatomi smb.conf #
Seluruh tingkah laku Samba dikendalikan satu file: /etc/samba/smb.conf. Formatnya menyerupai file INI — bagian dalam tanda kurung siku, parameter berpasangan kunci = nilai. File fixture berikut tersedia di bundle materi ini sebagai smb.conf:
cat smb.confOutput yang Dihasilkan:
[global]
workgroup = KANTOR
server string = Server Kantor
server role = standalone server
log file = /var/log/samba/log.%m
max log size = 1000
[share-file]
path = /srv/share-file
valid users = budi, siti
read only = no
browsable = yes
create mask = 0644Mari kita bedah baris per baris:
[global]: bagian pengaturan umum server, berlaku untuk semua share.workgroup = KANTOR: nama workgroup yang dilaporkan ke jaringan Windows; samakan dengan workgroup komputer klien agar share mudah ditemukan.server string = Server Kantor: keterangan bebas yang tampil di samping nama server saat klien menelusuri jaringan.server role = standalone server: Samba berdiri sendiri — bukan anggota domain Active Directory — model paling umum untuk satu server di kantor kecil.log file = /var/log/samba/log.%m: satu file log per klien;%mdiganti nama mesin pemberi nama NetBIOS, sehingga masalah bisa ditelusuri per komputer.max log size = 1000: membatasi ukuran file log ke 1000 KiB lalu memutarannya — rotasi sederhana tanpa logrotate.[share-file]: judul bagian ini sekaligus nama share; klien memanggilnya sebagai//server-kantor/share-file.path = /srv/share-file: direktori asli di disk yang dibagikan — satu-satunya baris yang menyentuh filesystem.valid users = budi, siti: hanya kedua user ini yang boleh masuk; user Samba lain ditolak meski punya password.read only = no: share boleh ditulis;yesmembuatnya hanya-baca untuk semua orang.browsable = yes: share tampil di daftar saat klien menelusuri server;nomenyembunyikannya tapi tetap bisa diakses bila namanya diketahui.create mask = 0644: permission bawaan file baru yang dibuat lewat share — pemilik bisa menulis, lainnya hanya membaca, sebagaimana kita pelajari di Chapter File Permissions .
Permission di dalam share tetap dijaga hukum Linux: smbd membaca dan menulis sebagai user Samba yang login, sehingga chmod dan chown di direktori path berlaku apa adanya.
User Samba: Dua Lapis Akun #
Samba tidak menyimpan akun sendiri dari nol. Sebuah user harus punya akun Linux dulu, baru diberi password Samba yang tersimpan di basis data /var/lib/samba/. Dua perintah berikut menyiapkan user budi:
sudo useradd -M -s /usr/sbin/nologin budi
sudo smbpasswd -a budiOpsi -M tidak membuat home directory (file kerja ada di share, bukan di server), dan -s /usr/sbin/nologin melarang login shell — user ini hanya boleh masuk lewat SMB, bukan SSH. smbpasswd -a menambahkan user ke basis data password Samba; tanpa langkah ini, akun Linux biasa tetap tidak bisa membuka share.
Menghubungkan dari Klien #
Dari Windows, share dibuka langsung di File Explorer dengan alamat \\server-kantor\share-file, atau dipetakan ke huruf drive lewat net use Z: \\server-kantor\share-file. Dari Linux, share dipasang ke direktori kosong dengan filesystem cifs:
sudo mkdir -p /mnt/share-file
sudo mount -t cifs //server-kantor/share-file /mnt/share-file -o username=budi,vers=3.0Opsi vers=3.0 memaksa SMB versi 3 — versi yang mengenkripsi kanal dan memperbaiki banyak kelemahan lama. Untuk pemasangan permanen, baris berikut ditambahkan ke /etc/fstab:
//server-kantor/share-file /mnt/share-file cifs credentials=/etc/samba/creds,vers=3.0 0 0File /etc/samba/creds berisi username=budi dan password=CONTOH_PASSWORD_KUAT dalam dua baris, dilindungi dengan chmod 600 — password tidak boleh dibiarkan terbaca di fstab yang bisa dilihat semua user. Berikut contoh tampilan sesi smbclient yang berhasil masuk lalu melihat isi share:
$ smbclient //server-kantor/share-file -U budi
Password for [KANTOR\budi]:
Try "help" to get a list of commands or "help" to get help on a specific command.
smb: \> ls
karyawan.csv A 28 Mon Jan 5 09:12:00 2026
laporan D 0 Mon Jan 5 09:30:00 2026
Bendera A menandai file biasa, D menandai direktori — pola yang sama dengan ls -l di Linux.
Keamanan: Port, Mode Guest, dan Pemeriksaan Konfigurasi #
Firewall di server cukup membuka TCP 445 (dan 137–138 bila nmbd dipakai), misalnya lewat ufw allow samba. Ketiga hal berikut menentukan aman-tidaknya sebuah share: hanya user terdaftar yang punya password (valid users), share dipasang dengan SMB3, dan direktori path diberi permission yang ketat. Jauhi godaan berikut:
Perintah resmi untuk memeriksa smb.conf adalah testparm — ia membaca ulang file dan melaporkan parameter yang tidak dikenal. Mesin latihan tidak memasangnya, tetapi pemeriksaan format dasar bisa dikerjakan grep: setiap share berada di dalam [...], dan parameter kuncinya mudah dihitung:
echo '== share yang didefinisikan =='
grep '^\[' smb.conf
echo '== direktori yang dibagikan =='
grep -E '^[[:space:]]*path[[:space:]]*=' smb.conf
echo '== user yang berhak masuk tiap share =='
grep -E '^[[:space:]]*valid users' smb.confOutput yang Dihasilkan:
== share yang didefinisikan ==
[global]
[share-file]
== direktori yang dibagikan ==
path = /srv/share-file
== user yang berhak masuk tiap share ==
valid users = budi, sitiHasilnya cepat tetapi bukan pengganti testparm di server sungguhan — grep hanya melihat pola teks, bukan makna parameter. Setelah konfigurasi berubah, Samba cukup di-reload (sudo systemctl reload smbd), bukan direstart, agar koneksi yang sedang berjalan tidak terputus.
Samba menjembatani dunia Windows dan Linux dengan baik, tetapi protokolnya membawa beban kompatibilitas tiga dekade. Bila semua mesin memakai Linux, ada jalur yang lebih ramping dan lebih cepat: NFS, materi chapter berikutnya.
Referensi lanjut: dokumentasi resmi Samba , halaman manual smb.conf(5) untuk daftar lengkap parameter, serta panduan Samba di wiki Arch .