Episode ini membahas winbind: bergabung ke domain Active Directory sebagai member server dengan net ads join, mapping user AD ke UID/GID lokal oleh winbindd, dan autentikasi login Linux dengan kredensial AD. Kalian juga mengonfigurasi security = ads, realm, winbind use default domain, serta skema idmap untuk range UID yang stabil.

Di episode 9 kalian membangun Domain Controller. Sekarang kita memakai domain itu: mengubah server Samba lain menjadi member domain — mesin yang bergabung ke AD, tapi bukan DC — sehingga user AD bisa login ke Linux dan mengakses share. Pahlawannya adalah winbindd, daemon yang menerjemahkan identitas domain (SID) menjadi identitas Unix (UID/GID). Ini integrasi yang membuat frasa "login sekali untuk semua" menjadi nyata di dunia Linux.
Jangan tertukar dengan episode 9: member server bergabung ke domain yang sudah ada, memakai DC untuk autentikasi, dan menyediakan layanan (file/print) kepada user domain. Ia tidak menyimpan database AD. Daemon yang bekerja: smbd (file) + winbindd (identitas) + nmbd (opsional). Mode member adalah cara paling umum menambahkan Linux ke lingkungan Windows existing.
Sebelum join, server harus bisa menemukan DC. Uji dengan tool klien AD:
host -t SRV _ldap._tcp.lab.localJika gagal, perbaiki /etc/resolv.conf agar menunjuk ke alamat DC (episode 9). Join tanpa DNS yang benar selalu gagal — ini pitfall nomor satu.
sudo net ads join -U Administratornet ads join menggunakan credentials admin domain, membuat computer account di AD, dan menulis file kerberos. Verifikasi:
net ads testjoin
klist -knet ads testjoin memastikan kepercayaan mesin valid; klist -k menampilkan keytab mesin yang dipakai untuk Kerberos.
[global]
workgroup = LAB
security = ads
realm = LAB.LOCAL
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind refresh tickets = yes
idmap config * : backend = tdb
idmap config * : range = 3000-7999
idmap config LAB : backend = rid
idmap config LAB : range = 10000-999999Bedah bagian penting:
security = ads: autentikasi lewat Active Directory (bukan NT4-style domain).realm = LAB.LOCAL: nama Kerberos realm — harus persis FQDN domain.winbind use default domain = yes: user dipanggil budi, bukan LAB\budi — mengurangi kebingungan di sistem yang memakai nama user polos.winbind enum users/groups = yes: getent passwd dan getent group bisa mencantumkan objek AD.* (default): backend tdb untuk akun selain domain (misal group internal) di range rendah 3000-7999.LAB (domain spesifik): backend rid — UID dihitung deterministik dari RID (bit terakhir SID), sehingga stabil di semua mesin. Ini krusial: file yang ditulis sebagai UID 10023 di mesin A punya UID yang sama di mesin B, tidak ada collision.Bayangkan share diakses dua server. Tanpa idmap yang konsisten, user yang sama bisa dipetakan ke UID berbeda di tiap server — file yang dibuat server A terlihat milik user lain dari server B. Backend rid memecahkan ini dengan hash deterministik. Range 10000-999999 memberi ruang besar tanpa menabrak user lokal (biasanya < 1000).
Important
idmap config adalah salah satu keputusan yang paling sulit diubah setelah produksi. Mengganti backend dari tdb ke rid setelah file tersebar berarti UID berubah → kepemilikan file tampak "hilang". Pilih strategi idmap dengan teliti sebelum domain berisi banyak data, dan dokumentasikan di runbook kalian.
sudo systemctl enable --now winbinddLalu hubungkan winbind ke NSS — file /etc/nsswitch.conf yang menentukan sumber lookup user/group:
passwd: files winbind
group: files winbind
shadow: files winbindUrutan files winbind artinya user lokal dicari dulu, baru winbind. Restart layanan yang membaca NSS:
sudo systemctl restart nscd # atau sssdwbinfo -u
wbinfo -g
getent passwd budi
id budiwbinfo -u/-g: daftar user/group dari domain.getent passwd budi: user AD muncul sebagai entri passwd — bukti NSS bekerja.id budi: tampil UID/GID hasil idmap — bukti pemetaan aktif.Untuk login SSH/konsol dengan kredensial AD, integrasikan PAM dengan winbind — pada Debian/Ubuntu cukup dengan paket libpam-winbind dan pam-auth-update, sementara RHEL family memakai authselect dengan profil winbind. Setelah aktif, uji login SSH dengan user AD:
ssh budi@fileserverKunci dari pola ini: autentikasi (password) diverifikasi DC, identitas (UID/GID) disediakan winbind — satu sumber password, banyak mesin konsisten.
Tip
Sering kali user AD gagal login tanpa pesan jelas. Urutan debug yang benar: klist -k (keytab valid?), wbinfo -t (trust domain OK?), getent passwd <user> (NSS jalan?), lalu cek journalctl -u winbindd dan log level (episode 16). Urutan ini menghemat berjam-jam dari debugging yang menebak-nebak.
Dengan winbind aktif, share bisa memakai user/group AD langsung:
[data]
path = /srv/data
valid users = @LAB\staf
writable = yesvalid users = @LAB\staf membatasi akses ke group AD staf — dan karena idmap konsisten, file yang dibuat user domain memiliki kepemilikan yang sama di semua member server. Inilah payoff seluruh episode: user Windows dan Linux berbagi ruang yang sama dengan identitas yang sama.
net ads join sangat sensitif DNS.getent passwd kosong meski winbind aktif: cek winbind enum users = yes dan restart winbindd; pastikan nsswitch memuat winbind.rid) di semua member server.winbind offline logon dan parameter timeout yang masuk akal.Inti yang harus dibawa pulang:
net ads join dan memakai DC untuk autentikasi; DNS harus benar dulu.security = ads, realm, dan winbind use default domain adalah inti konfigurasi member.rid menghasilkan UID/GID deterministik yang konsisten lintas mesin.wbinfo -u, getent passwd, dan id memverifikasi resolusi identitas AD.Di episode 11 selanjutnya kita akan membahas filesystem: permission ACL & quota — nt acl support, POSIX ACL + xattr dengan modul acl_xattr, mapping permission NTFS, serta quota per-user/group lewat quota.vfs. Di sinilah kontrol akses Samba mencapai presisi level Windows.