smbd [-D] [-a] [-o] [-P] [-h] [-V] [-d leveldebug] [-l file log] [-p nomor port] [-O opsi socket] [-s file konfigurasi] [-i scope]
File ini merupakan bagian dari suite Samba.
smbd adalah daemon server penyedia servis file sharing dan printing untuk klien Windows, dengan menggunakan protokol SMB/CIFS. smbd pun kompatibel dengan protokol LanManager, hingga bisa melayani klien LanManager. Termasuk MSCLIENT 3.0 for DOS, Windows for Workgroups, Windows 95, Windows NT, OS/2, DAVE for Macintosh, dan smbfs for Linux
Deskripsi lengkap tentang servis yang mampu diberikan ada di manual dari file konfigurasi (smb.conf) termasuk atribut-nya (Lihat smb.conf (5)). Manual ini tidak memberi detail tentang servis, tapi pada aspek administratif.
Catat bahwa ada beberapa implikasi sekuriti saat menjalakankan server ini, dan smb.conf (5) harus dianggap sebagai bacaan wajib sebelum menjalankan instalasi.
Satu sesi koneksi terjadi pada saat klien meminta, dan setiap klien mendapat salinan sesi tersebut dari server. Salinan ini kemudian melayani seluruh koneksi yang dibuat klien selama terjadi sesi (koneksi). Saat semua koneksi ditutup, sesi yang ada di klien maupun server pun dihapus.
File konfigurasi dan setiap file yang terlibat di dalam konfigurasi secara otomatis di-reload setiap menit jika ada perubahan. Proses reload dapat dipaksa dengan mengirim SIGHUP ke server. Proses reload dari file konfigurasi tidak akan berakibat apa-apa pada koneksi yang sudah terjadi. Agar perubahan juga dialami oleh koneksi yang sudah terjadi, koneksi harus diputus. Baik dengan cara memutuskan koneksi user dari server, atau me-restart smbd.
Secara default, server tidak akan beroperasi sebagai daemon.
Nilai default disini jika tidak dimasukkan apa-apa adalah nol.
Makin tinggi nilai di sini, makin detail data aktifitas server yang di-log ke dalam file log. Pada level 0, hanya error yang kritis dan peringatan serius yang dilog. Level 1 merupakan level yang memadai untuk log server harian - berupa informasi secukupnya tentang kegiatan server.
Level diatas 1 akan membuat log yang besar, dan sebaiknya hanya dipakai guna kepentingan investigasi masalah. Level di atas 3 dibuat hanya untuk developer dan akan membuat data log yang GEDE, dan biasanya sangat cryptic.
Catat bahwa parameter di sini akan override parameter log level di smb.conf (5).
Merupakan nomor port yang akan digunakan saat koneksi dari server. Standar untuk port default TCP untuk SMB adalah 139. Jika anda ingin menjalankan server sebagai user biasa, bukan root, sebagian besar sistem akan meminta port di atas 1024. Tanyakan system administrator anda jika ini terjadi.
Agar server bisa juga dipakai oleh klien lain, anda sebaiknya melakukan konfigurasi ke port selain 139, dengan me-redirect ke port 139. Keterangan detail ada di rfc1002.txt section 4.3.5.
Parameter ini biasanya tidak ditentukan, kecuali dalam situasi di atas.
/etc/inetd.conf
Jika server berjalan lewat meta-daemon inetd, file ini harus berisi info startup buat meta-daemon tersebut. Lihat bagian INSTALASI dibawah.
/etc/rc
(atau apa pun script inisialisasi yang dipakai sistem anda).
Jika server berjalan sebagai daemon, file ini harus berisi urutan startup yang tepat untuk servernya. Lihat bagian INSTALASI dibawah.
/etc/services
Jika server berjalan lewat meta-daemon inetd, file ini harus berisi info berisi mapping nama servis (seperti netbios-ssn) ke port servis (seperti 139) Lihat di INSTALASI.
/usr/local/samba/lib/smb.conf
Merupakan lokasi default untuk file konfigurasi smb.conf. Lokasi lain bisa /usr/samba/lib/smb.conf atau /etc/smb.conf.
File ini mendeskripsikan seluruh servis yang disediakan ke klien. Lihat smb.conf (5) untuk jelasnya.
Di beberapa sistem, smbd tidak bisa merubah uid kembali ke root, setelah call setuid(). Sistem demikian disebut memiliki "trapdoor" uid. Jika sistem anda seperti demikian, anda tidak bisa meng-koneksi dua user sekaligus ke server pada saat bersamaan. Error yang ditampilkan biasanya berupa "access denied" atau sejenisnya.
PRINTER
Jika tidak ada printer ditentukan, sebagian besar sistem akan menggunakan nilai variabel ini (atau "lp" jika variabel ini tidak ditentukan) sebagai nama printer yang akan digunakan.
Lokasi server dan file pendukungnya merupakan urusan masing-masing sysadmin. Jadi lokasi berikut hanya saran saja.
Sebaiknya software Samba diinstall di bawah /usr/local/samba, dengan akses readable buat semua, writeable hanya oleh root. Program-nya sendiri sebaiknya harus executable oleh semua, sehingga user bisa menjalankan server dengan privillege-nya sendiri. Server JANGAN diberi setuid, dan dalam beberapa sistem ada baiknya diberi setgid ke grup kosong. Sebab dalam sistem demikian ada masalah sekuriti dengan daemon yang bisa menjadi user dengan penyisipan lewat debugger. Pemberian setgid ke smbd bisa menutup lobang sekuriti ini. Dalam edisi awal kernel Linux, bugs ini dideteksi pada pre-kernel 2.0. Kemungkinan besar bugs ini hanya terjadi sekali, sebab pengujian di sistem lain tidak menunjukkan adanya bugs serupa.
File log dari server sebaiknya ditaruh di direktori yang readable dan writeable hanya oleh root, sebab menyimpan informasi sensitif.
File konfigurasi sebaiknya ditaruh dan diberi sekuriti sama seperti file log (readable dan writeable hanya oleh root), sebab file ini mengontrol sekuriti dari setiap servis ke klien. Contoh konfigurasi ada di source code "smb.conf.sample" dan bisa anda rubah jadi "smb.conf" untuk kemudian dimodifikasi sesuai kebutuhan.
Catatan berikut akan menganggap:
Server bisa berjalan lewat daemon oleh user atau saat startup, atau dari meta-daemon dengan request dari inetd. Jika sebagai daemon, server akan selalu siap, sehingga sesi koneksi akan lebih cepat. Jika dijalankan sebagai meta-daemon penggunaan memori akan lebih hemat, dan utilitas seperti TCP-wrapper untuk tcpd bisa diterapkan untuk sekuriti tambahan. Untuk penggunaan serius sebagai file server, disarankan smbd dijalankan sebagai daemon.
Jika anda sudah tentukan, silakan lanjut dengan MENJALANKAN SERVER SEBAGAI DAEMON or MENJALANKAN SERVER BERDASARKAN REQUEST.
Cukup letakkan opsi -D di baris perintah. Tidak usah meletakkan ampersand (&) setelah baris perintah, sebab opsi -D sudah membuat server keluar dari tty.
Setiap user bisa menjalankan server sebagai daemon, tentunya dengan hak akses. Ini berguna untuk ujicoba, dan bahkan bisa juga sebagai substitusi untuk ftp, misalnya. Jika demikian, maka server hanya memiliki privillege dari user yang menjalankannya.
Untuk meyakinkan bahwa server berjalan sebagai daemon, dan dijalankan oleh root sehingga bisa melayani banyak klien, anda harus memodifikasi startup sistem. Seperti di /etc/rc, masukkan baris berikut, merubah nomor port, lokasi file konfigurasi dan level debug sebagaimana anda inginkan
/usr/local/samba/bin/smbd -D -l /var/adm/smblogs/log -s /usr/local/samba/lib/smb.conf
(Baris di atas harus ditulis dalam satu baris)
Jika opsi yang digunakan saat kompilasi cocok dengan sistem anda, maka semua parameter kecuali -D bisa dihilangkan. Lihat OPTIONS diatas.
Jika sistem anda menggunakan meta-daemon seperti inetd, anda bisa mengatur server smbd untuk berjalan setiap ada upaya koneksi, ini butuh beberapa perubahan di file startup. Jika anda bukan sysadmin, hubungi administrator anda untuk merubah sistem.
Anda mungkin ingin merubah setup name server NetBIOS nmbd pada saat bersamaan dengan smbd. Untuk itu silakan baca manual nmbd (8).
Pertama-tama anda harus memastikan bahwa di file /etc/services
port telah dikonfigurasi, yang biasa digunakan adalah port 139, tapi port lain
pun bisa digunakan.
Pastikan baris berikut ada di dalam /etc/services
:
netbios-ssn 139/tcp
Untuk user NIS/YP - anda perlu mengkonfigurasi map servis NIS anda, selain
file /etc/services
.
Kemudian, taruh baris berikut di /etc/inetd.conf
(anda bisa
memilih untuk menggunakan meta-daemon selain inetd). Catat bahwa item pertama
di baris ini sama dengan nama servis di /etc/services
. Ubah nilai
berikut sesuai sistem anda (lihat inetd (8)):
netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd -d1 -l/var/adm/smblogs/log -s/usr/local/samba/lib/smb.conf
(Baris di atas sebaiknya ditulis dalam satu baris di
/etc/inetd.conf
).
Catat bahwa anda tidak perlu memberi nomor port di sini, bahkan jika anda tidak menggunakan standar port.
Akhirnya, edit file konfigurasi untuk menyediakan servis yang tepat. Sebagai contoh, anda bisa lihat dua servis berikut.
[homes] writeable = yes [printers] writeable = no printable = yes path = /tmp public = yes
Dua servis di atas akan membuat anda bisa meng-koneksi home directory dan mencetak dokumen ke printer di host (tentunya jika anda punya hak).
Jalankan uji berikut jika server berjalan sebagai daemon. Jika anda menjalankan server sebagai meta-daemon, anda bisa me-restart atau mengirim sinyal kill (HUP). Beberapa versi inetd akan membaca kembali tabel konfigurasi saat menerima sinyal HUP.
Jika komputer anda bernama "latino" dan nama anda adalah "che", maka anda
akan bisa meng-koneksi ke service \\latino\che
.
Untuk menguji dan bereksperimen dengan server, sebaiknya gunakan program smbclient smbclient (1)) dan baca file DIAGNOSIS.txt dalam dokumentasi Samba anda.
Manual ini berlaku untuk Samba versi 2.0.
Sebagian besar diagnosa dari server tersimpan di dalam file log. Nama file log ini ditentukan pada saat kompilasi, namun bisa di-override dari baris perintah.
Jumlah dan kelengkapan bahan diagnosa tergantung dari level debug yang digunakan server. Jika anda menemui masalah, set level debug ke 4 dan lihat file log-nya.
Sebagian besar pesan menjelaskan isinya dengan mudah. Sayangnya, saat manual ini dibuat, ada terlalu banyak diagnosa tersedia di source code. Jadi saat ini yang terbaik yang bisa anda lakukan adalah melihat source code dan memeriksa diagnosa yang anda temui.
Dengan mengirim SIGHUP ke smbd akan menyebabkannya me-re-load file smb.conf-nya.
Buat mematikan proses smbd, sebaiknya JANGAN mematikannya lewat sinyal SIGKILL (-9), kecuali sebagai upaya terakhir, sebab akan menyebabkan area shared memory menjadi tidak konsisten. Cara terbaik adalah dengan mengirim sinyal SIGTERM (-15) dan menunggu smbd melakukan sendiri proses kematiannya.
Level log dari debug bisa dinaikkan dengan mengirim sinyal
SIGUSR1 (kill -USR1 <smbd-pid>)
dan menurunkannya dengan
SIGUSR2 (kill -USR2 <smbd-pid>)
.
Ini akan menyebabkan problem yang muncul untuk di-diagnosa, sementara servis
tetap berjalan dengan level log biasa.
Catat bahwa saat sinyal mengirim debug, mereka tidak kembali ke smbd. Anda sebaiknya menunggu sampai smbd dalam kondisi siap menerima servis, sebelum anda mengirim sinyal. Sebab akan mempengaruhi kinerja.
hosts_access (5), inetd (8), nmbd (8), smb.conf (5), smbclient (1), testparm (1), testprns (1), dan RFC Internet rfc1001.txt, rfc1002.txt. Sebagai tambahan, spesifikasi CIFS (dulu SMB) juga tersedia lewat Web di: http://samba.org/cifs/.
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.