smbpasswd merupakan file password ter-enkripsi (encrypted password) dari Samba.
File ini merupakan bagian dari suite Samba.
Berisi nama user, user id UNIX dan hashed-password dari user, juga berisi informasi flag dan kapan terakhir kali password dirubah. Sepanjang perkembangan Samba, format file ini telah berubah-ubah dan memiliki beragam format.
Format dari file smbpasswd di Samba 2.0 sangat mirip dengan standar file passwd (5) di UNIX. Merupakan file ASCII yang berisi satu baris untuk setiap user, dan terbagi dalam beberapa field. Setiap field dipisahkan oleh titik dua (:), dan entri yang berawalan # akan diabaikan. Isi dari smbpasswd adalah informasi user sebagai berikut:
Nama user, dan nama yang ada di sini harus terdapat di dalam file passwd di UNIX
Merupakan user id (uid) dari user di UNIX. Entri ini harus cocok dengan field yang sama di file passwd UNIX. Jika tidak cocok, maka Samba akan menolak entri di smbpasswd ini.
Merupakan bentuk hash dari password LAN MANAGER yang di-encoded menjadi
32 digit bilangan hexadesimal.
Hash LAN MANAGER dibuat oleh enkripsi DES yang mengenkripsi
string dari password user menjadi key DES.
Mekanisme ini sama dengan yang digunakan di Windows 95/98. Catat, bahwa nilai
hash password ini terbilang lemah dan rentan terhadap serangan berdasarkan
kamus alias dictionary attacks. Kemudian jika ada 2 user yang menggunakan
password sama, maka entri keduanya akan identik. Sebab tidak ada kemampuan
"salted" seperti password UNIX.
Jika user tidak menggunakan password (entri kosong), maka di awal hash akan ada
tulisan "NO PASSWORD"
.
Jika string hexadesimal ini memiliki 32 huruf 'X'
, maka account
si user akan dianggap disable, dan user tidak bisa logon ke server Samba.
PERHATIAN, ACHTUNG!!. Catat bahwa karena proses challenge-response dari protokol SMB/CIFS untuk melakukan autentikasi, setiap orang yang memiliki pengetahuan tentang password hash ini akan mampu mengubah user lain dalam network. Untuk itu, hash ini sebetulnya sama saja dengan "plain text" dan sebaiknya JANGAN dibuat terbuka ke semua orang, kecuali root. Untuk melindunginya, taruh di direktori yang punya hak akses 'read' dan hanya root yang memiliki hak 'read/write', dan jangan beri hak akses apapun ke user.
Merupakan nilai hash dari password user di Windows NT yang di-encoded jadi 32 digit hexadesimal. Hash Windows NT ini dibuat dengan mengambil password user dan dijadikan nilai 16-bit, atau little-endian UNICODE, kemudian diberikan algoritma MD4 (internet rfc1321).
Hash ini terbilang lebih aman (secure) ketimbang hash dari Hash password LanMan sebab menyimpan aturan case dari password dan menggunakan algoritma dengan kualitas hash lebih tinggi. Tapi bagaimanapun juga, jika ada 2 user yang punya password sama, keduanya tetap akan identik. Sebab tidak adanya fungsi "salted" seperti password di UNIX.
PERHATIAN, ACHTUNG!!. Catat bahwa karena proses challenge-response dari protokol SMB/CIFS untuk melakukan autentikasi, setiap orang yang memiliki pengetahuan tentang password hash ini akan mampu mengubah user lain dalam network. Untuk itu, hash ini sebetulnya sama saja dengan "plain text" dan sebaiknya JANGAN dibuat terbuka ke semua orang, kecuali root. Untuk melindunginya, taruh di direktori yang punya hak akses 'read' dan hanya root yang memiliki hak 'read/write', dan jangan beri hak akses apapun ke user.
Berisi flag yang menjelaskan atribut dari account user.
Dalam Samba2.0, field ini berada di antara
tanda '['
dan ']'
, dan panjangnya selalu 13 karakter
(termasuk tanda '['
dan ']'
-nya).
Isi field-nya bisa karakter apa saja.
Flag lain bisa ditambahkan sesuai dengan pengembangan kode. Sisa field lain dikosongkan dengan spasi.
Berisi kapan terakhir kali account tersebut dimodifikasi. Terdiri dari
karakter LCT-
(singkatan dari "Last Change Time") dan
diikuti enkode numerik dari perubahan terahir
dalam format jam UNIX dalam detik sejak epoch (1970).
Titik dua lain tidak digunakan.
Dalam versi Samba sebelum ini (seri 1.9.18) file ini tidak berisi field Account Flags atau Last Change Time. Jika meng-upgrade dari 1.9.x, kode Samba 2.0 akan membaca dan menulis password lama, tapi tak akan bisa memodifikasi entri lama untuk memasukkan field baru. Penambahan entri baru dengan smbpasswd (8) akan berisi field tambahan di account yang baru. Jadi sebagian account ada yang berisi field baru, sedang sebagian lagi tidak.
Supaya konversi smbpasswd berjalan mulus, gunakan skrip
convert_smbpasswd, yang ada di bawah direktori
bin/
(di tempat yang sama dengan lokasi
smbd dan
nmbd
dengan sintaks sebagai berikut:
cat old_smbpasswd_file | convert_smbpasswd > new_smbpasswd_file
Skrip convert_smbpasswd akan membaca dari stdin dan menulis ke stdout, supaya tidak ada file yang ditulis ulang (overwrite) secara tidak sengaja.
Sekali skrip ini dijalankan, cek isi dari smbpasswd baru, untuk meyakinkan
tidak ada kerusakan dari konversi (yang menggunakan awk), dan
ganti <old smbpasswdfile>
dengan <new smbpasswd file>
.
Manual ini berlaku untuk Samba versi 2.0.
smbpasswd (8), samba (7), dan Internet RFC1321 untuk detail tentang algoritma MD4.
Software Samba dan utilitas lain pertama kali dibuat oleh Andrew Tridgell samba-bugs@samba.org. Samba sekarang dikembangkan oleh tim Samba sebagai proyek Open Source, sama seperti pengembangan kernel Linux.
Manual pertama kali ditulis oleh Karl Auer. Manual ini kemudian dikonversikan ke format YODL (satu software hebat lagi dari Open Source, tersedia bebas di ftp://ftp.icce.rug.nl/pub/unix/) dan di-update pada Samba2.0 oleh Jeremy Allison. Terjemahan bahasa Indonesia oleh M. ZEN Muttaqien aka. ZEN el GUAY.
Silakan lihat samba (7) untuk mengetahui daftar lengkap kontributor dan detail mengenai bagaimana memberikan laporan bugs, komentar dan sebagainya.