Database memberi rumah bagi data terstruktur, tetapi dokumen kerja sehari-hari — spreadsheet, berkas scan, arsip proyek — juga butuh tempat yang sama teraturnya. File server adalah mesin yang menyediakan folder bersama lewat jaringan sehingga file tidak terpencar di tiap laptop, backup cukup dilakukan sekali di satu tempat, dan hak akses diatur terpusat. Pada Chapter ini kita petakan lima cara berbagi file dari Linux — Samba, NFS, WebDAV, FTP, dan SSH/SFTP — beserta kekuatan dan kelemahan masing-masing. Dua pilihan utama, Samba dan NFS, akan dibedah tuntas pada chapter berikutnya; di sini kita latih pola dasarnya dengan file server HTTP yang bisa kita jalankan sungguhan di mesin latihan.
Lima Jalan Berbagi File #
Tidak ada protokol tunggal yang menang untuk semua keadaan; yang ada adalah lima pendekatan dengan wilayah kerja masing-masing:
| Cara | Protokol | Klien alami | Keamanan | Kasus paling cocok |
|---|---|---|---|---|
| Samba | SMB/CIFS | Windows, macOS, Linux | user + password, enkripsi SMB3 | kantor campur Windows dan Linux |
| NFS | NFSv3/v4 | Linux dan Unix | berbasis mesin (IP) + uid/gid | server dan stasiun kerja Linux |
| WebDAV | HTTP | semua lewat browser | aman bila di atas HTTPS | akses file lewat internet tanpa VPN |
| FTP | FTP | semua | usang: password dan data tanpa enkripsi | hanya untuk perangkat warisan |
| SSH/SFTP | SSH | semua | kunci publik, terenkripsi | transfer cepat antar mesin admin |
Samba berbicara protokol SMB — bahasa berbagi file bawaan Windows — sehingga komputer Windows bisa membuka share Linux langsung dari File Explorer tanpa perangkat lunak tambahan. NFS lebih ramping: implementasinya ada di kernel Linux, dan klien Linux memasang share-nya seperti memasang filesystem lokal. WebDAV memperluas HTTP dengan perintah menulis (PUT, DELETE), sehingga folder bisa dipakai dari browser atau client WebDAV mana pun — nginx punya module untuk itu. SSH/SFTP adalah bonus dari setiap SSH server: begitu sshd berjalan seperti pada Chapter SSH Server
, transfer file terenkripsi sudah tersedia tanpa konfigurasi tambahan.
Memilih Berdasarkan Kebutuhan #
Pemilihan protokol menjadi mudah bila dibaca dari klien dan jaringannya:
- Ada komputer Windows yang ikut memakai foldernya → Samba; dialah satu-satunya cara Windows membuka share tanpa perangkat tambahan.
- Semua mesin Linux di jaringan lokal tepercaya → NFS; paling cepat dan paling sederhana di dunia Linux murni.
- Perlu menulis file dari luar kantor lewat internet → WebDAV di atas HTTPS, atau SFTP bila penggunanya sedikit.
- Cukup mengambil dan menaruh file sesekali → SFTP; server SSH biasanya sudah ada, aman, tanpa instalasi baru.
- Perangkat lama hanya bisa FTP → gunakan sebisanya, pindahkan segera, dan jangan pernah mengirim password berharga lewat FTP.
Catatan tentang FTP #
FTP pernah menjadi cara standar berbagi file, dan namanya masih muncul di banyak tempat. Dua alasan membuatnya pantas ditinggalkan: password dikirim sebagai teks polos yang bisa dibaca siapa pun di jalur, dan protokolnya memakai dua kanal (kanal perintah plus kanal data) yang menyulitkan firewall — terutama mode pasif dengan port acak. Kebutuhan yang dulu dilayani FTP kini lebih aman ditangani SFTP (kalau klien mendukung SSH) atau WebDAV di atas HTTPS. Server Linux modern tetap menyediakan vsftpd untuk perangkat warisan, tetapi perlakukan sebagai jembatan sementara, bukan arsitektur.
File Server HTTP dalam Satu Perintah #
Prinsip dasar semua file server bisa dilihat tanpa memasang apa pun: hubungkan nama path dengan isi file, lalu layanan di jaringan menyerahkan isi itu bila diminta. Python 3 membawa modul http.server yang mengubah direktori kerja menjadi file server HTTP read-only. Kita mulai dengan menyiapkan folder share beserta isinya:
mkdir -p share-file
printf 'nama,umur\nBudi,29\nSiti,34\nAyu,26\n' > share-file/karyawan.csv
cat share-file/karyawan.csvOutput yang Dihasilkan:
nama,umur
Budi,29
Siti,34
Ayu,26Sekarang folder share-file tersebut kita layankan, unduh dari sisi klien dengan curl, lalu bandingkan hasil unduhan dengan file aslinya. Alamat yang ditulis tanpa awalan skema HTTP otomatis dianggap HTTP oleh curl, sehingga baris di bawah tetap ringkas:
mkdir -p share-file
printf 'nama,umur\nBudi,29\nSiti,34\nAyu,26\n' > share-file/karyawan.csv
python3 -m http.server 8642 --bind 127.0.0.1 >/dev/null 2>&1 &
SRV=$!
for i in 1 2 3 4 5; do curl -s -o /dev/null 127.0.0.1:8642/ && break; sleep 0.3; done
curl -s -o unduhan.csv 127.0.0.1:8642/share-file/karyawan.csv
diff share-file/karyawan.csv unduhan.csv && echo "IDENTIK"
curl -s -o /dev/null -w "kode status: %{http_code}\n" 127.0.0.1:8642/share-file/tidak-ada
kill $SRV
echo "server berhenti"Output yang Dihasilkan:
IDENTIK
kode status: 404
server berhentiMari kita bedah baris demi baris blok di atas:
mkdir -p share-filedanprintf ... > share-file/karyawan.csv: setiap blok latihan mandiri, jadi folder dan file dibuat ulang di awal blok — persis kebiasaan yang dipakai sandbox materi ini.python3 -m http.server 8642 --bind 127.0.0.1: menjalankan file server HTTP di port 8642; tanpa--bind, server mendengarkan semua antarmuka dan tampil di jaringan.SRV=$!: menyimpan PID server ke variabel —$!adalah PID proses latar terakhir, dipakai untuk mematikannya kembali.for i in 1 2 3 4 5; do curl -s ... && break; sleep 0.3; done: menunggu server siap;curldiam-diam memanggil halaman utama dan berhenti begitu mendapat jawaban.curl -s -o unduhan.csv <alamat>: mengunduh berkas ke fileunduhan.csv; di sinilah klien berbicara ke file server —share-file/karyawan.csvdi alamat dipetakan keshare-file/karyawan.csvdi disk, dancurlmenganggap skema HTTP karena tidak ditulis.diff ... && echo "IDENTIK": membuktikan isi unduhan sama bit demi bit dengan aslinya;diffyang diam berarti tidak ada bedanya.curl -s -o /dev/null -w "kode status: %{http_code}\n" ...: meminta file yang tidak ada; jawaban404menunjukkan server menolak path yang tidak dipunya, bukan menggantung.kill $SRV: mematikan server dengan PID yang disimpan — kebiasaan menutup layanan yang kita mulai sendiri.
Peta lengkap sudah di tangan. Jalan pertama yang kita tempuh adalah yang paling sering dibutuhkan kantor nyata — share yang terbuka dari Windows sekaligus Linux — dan itulah pekerjaan Samba, materi Chapter Samba .
Referensi lanjut: situs proyek Samba , ikhtisar protokol SMB dari Microsoft , serta module WebDAV nginx .