Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Samba adalah implementasi open-source dari protokol SMB/CIFS yang memungkinkan sistem Linux bertindak sebagai file sharing server yang dapat diakses oleh client Windows. Artikel ini membahas cara menginstall dan mengkonfigurasi Samba di Debian 12 hingga folder share dapat diakses dari Windows dengan autentikasi user, hak baca/tulis penuh, dukungan recycle bin lokal, serta kemampuan menjalankan file executable seperti .exe langsung dari share.
Setelah konfigurasi selesai, folder share dapat diakses dari Windows melalui:
\\192.168.1.60\Shared
rootNilai-nilai berikut digunakan sepanjang artikel ini sebagai contoh. Sesuaikan dengan lingkungan masing-masing.
| Item | Nilai Contoh |
|---|---|
| IP Server | 192.168.1.60 |
| Hostname | NFS-Server |
| Folder Share | /mnt/nfs-data/shared |
| Nama Share Windows | Shared |
| User SMB | namauser |
apt update && apt upgrade -y
apt install samba -y
Verifikasi instalasi berhasil:
smbd --version
Buat user khusus yang akan digunakan untuk autentikasi dari client Windows. User ini tidak memerlukan home directory maupun akses shell:
id namauser >/dev/null 2>&1 || useradd -M -s /usr/sbin/nologin namauser
Verifikasi user berhasil dibuat:
id namauser
Penjelasan flag:
| Flag | Keterangan |
|---|---|
-M | Tidak membuat home directory |
-s /usr/sbin/nologin | User tidak dapat login ke shell |
Buat direktori yang akan dibagikan:
mkdir -p /mnt/nfs-data/shared
Atur owner dan permission:
chown -R namauser:namauser /mnt/nfs-data/shared
chmod 2770 /mnt/nfs-data/shared
Verifikasi hasilnya:
ls -ld /mnt/nfs-data/shared
Permission 2770 berarti: setgid aktif (angka 2 di depan) agar group tetap konsisten pada file yang dibuat di dalamnya, owner dan group memiliki akses penuh, sementara user lain tidak memiliki akses sama sekali.
Samba menggunakan database password tersendiri, terpisah dari password Linux. Tambahkan user ke database Samba lalu aktifkan:
smbpasswd -a namauser
smbpasswd -e namauser
Catatan: Saat mengetik password, terminal tidak menampilkan karakter apapun. Ini perilaku normal.
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%F-%H%M%S)
nano /etc/samba/smb.conf
Hapus seluruh isi bawaan, lalu tempelkan konfigurasi berikut:
[global]
workgroup = WORKGROUP
server string = NFS-Server
server role = standalone server
security = user
map to guest = never
passdb backend = tdbsam
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
dns proxy = no
ea support = yes
store dos attributes = yes
map acl inherit = yes
acl allow execute always = yes
[Shared]
path = /mnt/nfs-data/shared
browseable = yes
read only = no
writable = yes
valid users = namauser
force user = namauser
force group = namauser
create mask = 0770
force create mode = 0110
directory mask = 2770
force directory mode = 2770
vfs objects = recycle
recycle:repository = .recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:exclude = *.tmp, *.temp, ~$*
Penjelasan parameter kunci:
| Parameter | Keterangan |
|---|---|
valid users = namauser | Hanya user ini yang dapat mengakses share |
force user / force group | Semua file yang dibuat melalui SMB akan dimiliki oleh namauser:namauser, menjaga konsistensi owner |
create mask = 0770 | File baru dibuat dengan permission baca/tulis/eksekusi untuk owner dan group |
directory mask = 2770 | Folder baru mewarisi setgid, menjaga konsistensi group |
acl allow execute always = yes | Memungkinkan file executable seperti .exe dijalankan dari share |
vfs objects = recycle | Mengaktifkan recycle bin lokal Samba |
testparm
Jika konfigurasi valid, output akan menyertakan:
Loaded services file OK.
systemctl enable smbd
systemctl restart smbd
systemctl status smbd
Pastikan status menunjukkan active (running).
Buka File Explorer di client Windows, lalu ketik alamat berikut di address bar:
\\192.168.1.60\Shared
Saat diminta autentikasi, masukkan username namauser dan password SMB yang sudah dibuat. Setelah berhasil masuk, lakukan pengujian dasar: buat folder baru, buat file baru, dan hapus file uji coba untuk memverifikasi hak baca/tulis berfungsi.
Konfigurasi di atas mengaktifkan recycle bin lokal Samba. File yang dihapus dari Windows melalui SMB akan dipindahkan ke:
/mnt/nfs-data/shared/.recycle
Cek isi recycle bin dengan:
find /mnt/nfs-data/shared/.recycle
Penting: Recycle bin Samba hanya aktif untuk file yang dihapus melalui akses SMB (Windows Explorer). File yang dihapus langsung dari terminal Linux atau aplikasi lain di luar SMB tidak akan masuk ke recycle bin.
| Gejala | Kemungkinan Penyebab | Solusi |
|---|---|---|
Access denied saat login dari Windows | User SMB belum dibuat atau belum aktif | Jalankan pdbedit -L untuk cek, lalu smbpasswd -a namauser dan smbpasswd -e namauser |
| Share tidak ditemukan dari Windows | Service Samba tidak berjalan | Cek dengan systemctl status smbd, restart jika perlu |
| Bisa masuk share tapi tidak bisa membuat file | Permission folder salah | Jalankan chown -R namauser:namauser /mnt/nfs-data/shared dan chmod 2770 /mnt/nfs-data/shared |
systemctl restart smbd gagal | Error sintaks di smb.conf | Jalankan testparm untuk melihat baris bermasalah, atau restore backup |
File .exe tidak bisa dijalankan | Permission atau kebijakan Windows | Pastikan acl allow execute always = yes dan force create mode = 0110 ada di konfigurasi; jika masih gagal, masalah kemungkinan ada di sisi Windows (SmartScreen/Group Policy) |
| File dihapus tidak masuk recycle bin | File dihapus dari luar SMB, atau Samba belum direstart | Hapus file dari Windows Explorer, bukan terminal Linux; restart Samba setelah edit konfigurasi |
Konfigurasi ini menggunakan satu akun bersama (namauser) yang dipakai oleh semua client Windows. Semua client memiliki hak akses penuh dan semua file tampak dibuat oleh user yang sama — tidak ada pemisahan per pengguna. Pendekatan ini cocok untuk kebutuhan rumahan atau tim kecil, tetapi tidak direkomendasikan untuk lingkungan yang membutuhkan audit aktivitas per pengguna.
# Update dan install
apt update && apt upgrade -y
apt install samba -y
# Setup user
useradd -M -s /usr/sbin/nologin namauser
smbpasswd -a namauser
smbpasswd -e namauser
# Setup folder
mkdir -p /mnt/nfs-data/shared
chown -R namauser:namauser /mnt/nfs-data/shared
chmod 2770 /mnt/nfs-data/shared
# Backup dan edit konfigurasi
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%F-%H%M%S)
nano /etc/samba/smb.conf
# Validasi dan aktifkan
testparm
systemctl enable smbd
systemctl restart smbd
systemctl status smbd
# Administrasi
pdbedit -L # Lihat daftar user SMB
smbpasswd namauser # Ubah password SMB
testparm # Validasi konfigurasi
Artikel ini disusun berdasarkan pengujian langsung pada lingkungan berikut:
Nilai-nilai seperti IP server, hostname, path folder, dan nama user dalam artikel ini bersifat contoh — sesuaikan seluruhnya dengan konfigurasi lingkungan yang digunakan.