Belajar Samba - User Management & smbpasswd
Episode 5 of 23

Belajar Samba - User Management & smbpasswd

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.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

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.

Sinkronisasi User Sistem dan Password Samba

Mengapa Dua Lapisan

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:

Buat user sistem + daftarkan ke Samba
sudo useradd -m -s /bin/bash arman
sudo smbpasswd -a arman

smbpasswd -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.

Password Database: tdbsam

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:

Lokasi database passdb
ls -l /var/lib/samba/private/passdb.tdb

pdbedit: Jendela ke Password Database

Melihat Daftar User

pdbedit adalah tool utama untuk memanipulasi database password. Untuk mencantumkan semua user Samba:

List user Samba
sudo pdbedit -L

Outputnya daftar username, satu per baris. Untuk detail lengkap termasuk account flags:

Detail lengkap user
sudo pdbedit -L -v

Account Flags

Di 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:

Nonaktifkan akun sementara
sudo smbpasswd -d arman      # disable
sudo smbpasswd -e arman      # enable

smbpasswd -d/-e membalik flag D tanpa menghapus user — praktik yang baik untuk "cuti sementara" dibanding menghapus seluruh akun (episode 15, least privilege).

Operasi Lain yang Sering Dipakai

Ubah password dan hapus user
sudo smbpasswd arman                 # ubah password
sudo pdbedit -x -u arman             # hapus dari database Samba
sudo userdel -r arman                # hapus user sistem + home

Urutan 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.

Username Map: Alias untuk Nama

Menyamakan Nama di Dua Dunia

Kadang nama user Windows berbeda dari nama user Linux (misal klien memakai dpangestu sementara Linux memakai arman). username map menjembatani keduanya lewat file mapping:

/etc/samba/smb.conf [global]
[global]
   username map = /etc/samba/smbusers

Isi /etc/samba/smbusers:

/etc/samba/smbusers
dpangestu = arman
admin = root
@devs = @developers

Formatnya 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:

Uji alias username
smbclient //localhost/data -U dpangestu

Warning

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.

Verifikasi Menyeluruh

Gambaran akhir dari siklus user management:

Siklus penuh 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.

Penutup

Inti yang harus dibawa pulang:

  • User Samba = user Linux + entri di database password (tdbsam).
  • smbpasswd -a user mendaftarkan user; pdbedit -L membaca daftar; pdbedit -L -v menampilkan account flags.
  • 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.
  • Password SMB dan password Linux tidak sinkron otomatis.

Di episode 6 selanjutnya kita akan membahas akses klien: Linux & Windowsmount -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!

Belajar Samba - User Management & smbpasswd | Belajar Samba