Episode ini mengajarkan cara mengelola user Samba: sinkronisasi user sistem dengan smbpasswd -a, membaca daftar user via pdbedit -L, dan memahami database password tdbsam. Kalian juga belajar username map untuk alias nama, serta membaca account flags seperti U, D, dan N.

Share [data] dari episode 4 sudah menunggu user yang benar. Namun di Samba, "membuat user" bukan sekadar useradd — karena Samba menyimpan password-nya sendiri, terpisah dari /etc/shadow. Di episode 5 kita membedah user management: sinkronisasi user sistem dengan password Samba, database tdbsam, smbpasswd, pdbedit, username map, dan account flags. Pemahaman ini yang membedakan orang yang sekadar "bisa share" dari administrator yang benar-benar mengendalikan akses.
Setiap user Samba harus berupa user Linux yang valid (ingat episode 0: Samba memetakan ke user Unix). Tapi autentikasi SMB memakai hash password dalam format NTLM yang tidak bisa disimpan di /etc/shadow biasa. Karena itulah Samba punya database password sendiri. Alur pembuatan user yang benar:
sudo useradd -m -s /bin/bash arman
sudo smbpasswd -a armansmbpasswd -a arman menambahkan user arman ke database password Samba dan meminta password SMB — boleh berbeda dari password login Linux. Setelah ini, arman bisa masuk ke share dengan password SMB-nya.
Secara default Samba menyimpan user dalam format tdbsam — database berformat TDB (Trivial Database) di /var/lib/samba/private/passdb.tdb. Ini menggantikan format lawas smbpasswd teks polos. Keuntungannya: konsistensi transaksional, aman, dan menjadi fondasi yang sama untuk tool pdbedit. Lokasi persisnya bisa dicek:
ls -l /var/lib/samba/private/passdb.tdbpdbedit adalah tool utama untuk memanipulasi database password. Untuk mencantumkan semua user Samba:
sudo pdbedit -LOutputnya daftar username, satu per baris. Untuk detail lengkap termasuk account flags:
sudo pdbedit -L -vDi output pdbedit -L -v, perhatikan bagian Account Flags: — singkatan yang menjelaskan status akun:
[U] — User: akun normal.[D] — Disabled: akun dinonaktifkan, tidak bisa login.[N] — No password: akun tanpa password (jarang untuk produksi).[W] — Workstations: akun workstation trust (dipakai AD).Aktifkan/nonaktifkan akun dengan mudah:
sudo smbpasswd -d arman # disable
sudo smbpasswd -e arman # enablesmbpasswd -d/-e membalik flag D tanpa menghapus user — praktik yang baik untuk "cuti sementara" dibanding menghapus seluruh akun (episode 15, least privilege).
sudo smbpasswd arman # ubah password
sudo pdbedit -x -u arman # hapus dari database Samba
sudo userdel -r arman # hapus user sistem + homeUrutan hapus yang benar: pdbedit -x -u arman dulu (bersihkan database Samba), baru userdel (hapus user Linux). Jika dibalik, Samba akan menyimpan "user yatim" yang memetakan ke identitas tidak ada — sumber kebingungan saat auditing.
Important
Password Samba dan password login Linux berbeda sistemnya. Mengganti password Linux via passwd tidak mengubah password SMB, begitu pula sebaliknya. Untuk environment produksi, pertimbangkan mekanisme sinkronisasi — atau arahkan autentikasi ke Active Directory via winbind (episode 10) sehingga hanya ada satu sumber password.
Kadang nama user Windows berbeda dari nama user Linux (misal klien memakai dpangestu sementara Linux memakai arman). username map menjembatani keduanya lewat file mapping:
[global]
username map = /etc/samba/smbusersIsi /etc/samba/smbusers:
dpangestu = arman
admin = root
@devs = @developersFormatnya nama_klien = user_linux. Baris pertama membuat koneksi dpangestu diperlakukan sebagai arman; baris terakhir menunjukkan mapping antar group. Setelah mengedit, reload konfigurasi dan uji login dengan alias:
smbclient //localhost/data -U dpangestuWarning
username map yang menargetkan root (misal admin = root) sangat berisiko: seluruh share yang menulis dengan force user = root akan menulis sebagai superuser. Kalau benar-benar perlu, batasi dengan valid users dan audit ketat. Alternatif aman: buat user Linux khusus dengan hak terbatas, bukan root.
Gambaran akhir dari siklus user management:
sudo useradd -m -s /bin/bash arman
sudo smbpasswd -a arman
sudo pdbedit -L | grep arman
sudo pdbedit -L -v | grep -A1 "Account Flags"Ketiga langkah terakhir memastikan user ada, terdaftar, dan aktif ([U]). Kalau pdbedit -L kosong, sesuatu salah di langkah sinkronisasi — kembali ke smbpasswd -a.
Inti yang harus dibawa pulang:
tdbsam).smbpasswd -a user mendaftarkan user; pdbedit -L membaca daftar; pdbedit -L -v menampilkan account flags.[U], [D], [N], [W] mengontrol status akun; smbpasswd -d/-e toggle disable/enable.username map memetakan nama klien ke user Linux; hindari mapping ke root.Di episode 6 selanjutnya kita akan membahas akses klien: Linux & Windows — mount -t cifs //host/share /mnt -o username=... dan smbclient //host/share dari sisi Linux, lalu \\server\share, penyimpanan credentials, dan network discovery dari sisi Windows. Inilah episode di mana share kalian akhirnya dipakai dari dua dunia sekaligus!