smbclient nama servis [-s smb.conf] [-O opsi socket][-R urutan name resolver] [-M nama NetBIOS] [-i scope] [-N] [-n nama NetBIOS] [-d level debug] [-P] [-p port] [-l basis nama untuk log] [-h] [-I IP tujuan] [-E] [-U nama user] [-L nama NetBIOS] [-t kode terminal] [-m protocol maksimum] [-b ukuran buffer] [-W workgroup] [-T<c|x>IXFqgbNan] [-D direktori inisial] [-c string perintah]
File ini merupakan bagian dari suite Samba.
smbclient adalah klien yang bisa 'berbicara' dengan server SMB/CIFS. Klien ini menawarkan antarmuka (interface) yang serupa dengan program ftp (lihat ftp(1)). Kegiatan yang bisa dilakukan antara lain mengambil file dari server ke mesin lokal, menaruh file ke mesin remote, meminta daftar isi direktori dari server dan sebagainya.
//server/servis
, dimana server
adalah nama NetBIOS
dari server SMB/CIFS yang menawarkan servis, dan servis
adalah
nama servis yang ditawarkan server. Jadi untuk mengakses servis
printer anda bisa gunakan
//smbserver/printer
Catat bahwa nama server tidak harus selalu nama host (DNS) ! Sebab nama yang dibutuhkan adalah nama NetBIOS yang mungkin sama dan mungkin berbeda dengan nama host dari mesin.
Nama server bisa dikenali, baik berdasarkan parameter -R dari smbclient atau menggunakan parameter name resolve order dari smb.conf. Memungkinkan administrator merubah urutan dan metode bagaimana nama server diurutkan.
Tidak ada password default. Jika password tidak dimasukkan di dalam baris perintah (entah menggunakan parameter ini atau menambahkan pasword ke opsi -U) dan opsi -N tidak diberikan, klien akan meminta password, meskipun servis tidak meminta. (Jika password tidak diperlukan tekan ENTER saja untuk memberi null password).
Catat: beberapa server (termasuk OS/2 dan Windows for Workgroups) meminta password diinput dalam huruf kapital, huruf kecil atau campuran akan mengalami kemungkinan penolakan di server.
Hati-hati dengan memasukkan password ke dalam script.
Pilihannya adalah :"lmhosts", "host", "wins" and "bcast". Keempatnya akan menyebabkan nama server di-resolve sebagai berikut :
Jika parameter ini tidak di-set maka urutan resolve nama yang akan dipakai adalah yang ada di smb.conf dalam parameter (name resolve order).
Urutan default adalah lmhosts, host, wins, bcast, jadi tanpa parameter ini atau pun tanpa entri di "name resolve order" maka urutan ini yang akan dipakai.
Jika komputer penerima menjalankan WinPopup, maka pesan akan muncul dan kadang disertai beep. Jika WinPopup tidak dijalankan, maka pesan akan hilang dan tak ada pesan error yang muncul.
Jika pesan lebih dari 1600 bite, yang merupakan limit protokol ini, maka pesan akan secara otomatis dipotong.
Satu trik berguna adalah dengan menggunakan cat ke smbclient. Seperti:
cat pesan.txt | smbclient -M UDIN
akan mengirim pesan di file pesan.txt ke mesin UDIN.
Anda pun bisa menggunakan opsi -U dan -I, sebab mereka memungkinkan anda mengontrol FROM dan TO dari pesan anda.
Lihat parameter message command di smb.conf (5) untuk mengetahui bagaimana menerima pesan WinPopup di Samba.
Catat: Jika klien anda ingin selalu menerima pesan WinPopup setiap kali dikirim, maka kopi WinPopup di startup direktori dari setiap klien.
Jika password tidak dispesifikasikan dalam baris perintah (command line), maka klien akan meminta password.
Jika tidak diberikan, maka nilai default-nya 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. Jika diset ke 'A', maka semua pesan debug akan dilog. Setting ini hanya buat developer dan orang yang benar-benar ingin tahu cara kerja kode Samba.
Catat bahwa parameter di sini akan override parameter log level di smb.conf (5).
Basis nama default biasanya ditentukan saat Samba kita kompilasi.
Nama basis digunakan untuk membuat log file aktual. Contoh, jika nama yang
diberikan adalah "log", maka file debug akan menjadi log.client
.
File log di komputer klien tidak pernah dibuang.
Biasanya klien akan mencoba mencari lokasi server SMB/CIFS dengan melakukan lookup lewat mekanisme resolusi nama NetBIOS, seperti dijelaskan dalam name resolve order di atas. Dengan menggunakan parameter ini, maka klien tidak akan mencari dengan komponen nama NetBIOS, tapi lewat alamat IP.
Tidak ada nilai default untuk parameter ini. Jika tidak diberikan, maka akan ditentukan secara otomatis seperti di atas.
Secara default, klien akan mengirim pesan ke standard output - biasanya tty dari user.
Beberapa server meminta nama NetBIOS yang valid, dan beberapa malah tidak bisa membedakan antara huruf kapital/kecil.
Jika nama user tidak diberikan, maka nilai default yang akan digunakan
adalah versi huruf kapital dari urutan environment variable USER
atau LOGNAME
. Jika baik nama user maupun environment variable
tidak ada, maka akan digunakan user "GUEST".
Jika environment variable dari USER
memiliki karakter '%',
semua yang ada setelah karakter itu akan dianggap sebagai password.
Sehingga memungkinkan anda menentukan environment variable menjadi
USER=username%password
, jadi password tidak perlu diberikan di
dalam baris perintah.
Jika anda melakukan koneksi ke servis yang meminta password, maka ia bisa
dimasukkan dengan opsi-U
dengan menambahkan simbol persen ("%") di antara nama user dan password.
Contoh, anda mencoba melakukan koneksi menggunakan nama user udin
dan password anda rahasia
, maka anda bisa menuliskan:
-U udin%rahasia
di baris perintah. Lihat bahwa tidak ada spasi di antara simbol persen.
Jika anda memasukkan password sebagai bagian dari nama user, maka opsi -N (meniadakan prompt password) bisa dimasukkan.
Jika anda menentukan password sebagai parameter DAN sebagai bagian dari nama user, maka yang menjadi prioritas-nya adalah password sebagai bagian dari nama user. Dengan tidak memasukkan apa-apa setelah % akan menyebabkan nama user atau password kosong digunakan.
Password juga bisa ditentukan dengan menentukan environment variable
PASSWD
yang berisi password user. Catat bahwa metode ini sangat
tidak aman di beberapa sistem, namun di sistem lain memungkinkan user menulis
perintah smbclient tanpa menimbulkan passwordnya muncul di daftar proses.
Catat: Beberapa server (termasuk OS/2 dan Windows for Workgroups) memaksa untuk memasukkan password dalam huruf kapital. Huruf kecil/campuran mungkin akan ditolak oleh server.
Hati-hati dengan memasukkan password dalam script atau di
environment variable PASSWD
. Lagipula dalam beberapa sistem,
dengan mengecek daftar proses dengan perintah ps
dapat
menimbulkan password jadi kasat mata. Cara teraman adalah dengan selalu
membiarkan smbclient meminta password, bukan lewat baris perintah.
"smbclient -L host"
, maka daftar akan muncul.
Opsi-I akan berguna
jika nama NetBIOS anda berbeda dengan nama host DNS dari TCP/IP atau jika anda
mencoba mengakses host di network lain.
Kode terminal di sini termasuk sjis
, euc
, jis7
, jis8
,
junet
, hex
, cap
.
Untuk lebih lengkap mengenai daftar codepage, cek di source code dari Samba.
"-"
untuk standard output.
Jika menggunakan standard output anda harus menurunkan level log pada nilai
terendah -d0
guna mencegah file tar anda terkorupsi.
Flag ini adalah kebalikan dari flag x.
"-"
untuk standard input.
Merupakan kebalikan dari flag c. File yang di-restore
memiliki saat pembuatan (mtime) yang sama dengan saat file tersebut di-save.
Sedang direktori tidak memiliki tanggal pembuatan yang benar.
Tar Long File Names
Opsi tar smbclient sekarang mendukung nama file yang panjang atau long file names (LFN) baik dalam backup atau restore. Tapi lokasi lengkap nama file harus kurang dari 1024 byte. Juga saat arsip tar dibuat, opsi tar smbclient menempatkan seluruh file dalam arsip dengan nama relatif, bukan absolut.
Tar Nama File
Seluruh nama file bisa diberikan dengan nama path ala DOS
(dengan \
sebagai pemisah komponen), atau sebagai path ala UNIX
(dengan /
sebagai pemisah komponen).
Contoh
smbclient //pc_ku/share_saya "" -N -Tx backup.tar
smbclient //pc_ku/share_saya "" -N -TXx backup.tar users/docs
smbclient //pc_ku/share_saya "" -N -Tc backup.tar users/docs
smbclient //pc_ku/share "" -N -tc backup.tar users\edocs
smbclient //pc_ku/share_saya "" -N -Tc backup.tar *
Berguna dalam script dan menampilkan stdin ke server, contoh:
-c 'print -'
.
Saat klien berjalan, user akan mendapat prompt :
smb:\>
Tanda "\" mengindikasikan lokasi direktori di server pada saat itu, dan akan berubah jika kita berpindah direktori.
Prompt mengindikasikan bahwa klien siap dan menunggu perintah. Setiap perintah terdiri dari satu kata, dan diikuti parameter khusus. Perintah dan parameter-nya dipisahkan oleh spasi. Seluruh perintah tidak case-sensitive, sama seperti perintah DOS. Parameter sendiri bisa case-sensitive dan bisa juga tidak, tergantung perintahnya.
Anda bisa menentukan nama file yang memiliki spasi dengan tanda kutip, contoh "ini nama file yang panjang".
Parameter dalam kurung siku (seperti "[parameter]") adalah pilihan. Jika tidak diberikan, maka akan digunakan nilai default. Parameter dalam kurung (seperti "<parameter>") harus dimasukkan.
Catat bahwa seluruh perintah yang berjalan di server, dilakukan dengan mengirim perintah ke server dari klien. Sehingga akan ada perbedaan tergantung dari servernya.
Perintah yang ada di sini disusun berdasarkan urutan abjad.
Jika tidak ada nama direktori, maka lokasi direktori saat itu akan ditampilkan.
Jika tidak ada nama direktori, maka lokasi direktori lokal akan ditampilkan.
Jika lowercasing di-ON, nama file lokal akan dirubah ke huruf kecil saat menggunakan get dan mget Kerap berguna saat meng-kopi file MSDOS dari server, sebab nama file di UNIX biasanya dalam huruf kecil.
Mask yang ditentukan ke mget dan mput akan menjadi filter untuk direktori, bukannya file saat rekursi di-ON.
Mask dengan perintah .B berguna untuk memfilter file di direktori tersebut. Contoh, jika mask dalam perintah mget adalah "source*" ditambah dengan mask "*.c" dan rekursi di-ON, maka mget akan mengambil semua file yang cocok dengan "*.c" dalam seluruh direktori di bawahnya, termasuk direktori yang memiliki "source*"
Catat, bahwa nilai default dari mask adalah kosong (sama dengan "*") dan akan tetap begitu sampai dirubah dengan perintah mask. Biasanya ia menyimpan nilai yang paling sering digunakan. Untuk mencegah hasil yang tak diinginkan, sebaiknya nilai mask .I dirubah ke "*" setelah menggunakan perintah mget atau mput
Catat bahwa mask ini di-interpretasikan berbeda selama operasi, baik rekursif atau non-rekursif - untuk lebih jelasnya lihat recurse dan mask. Juga seluruh transfer dalam smbclient .B dilakukan dengan biner. Lihat juga lowercase.
Catat bahwa mask ini di-interpretasikan berbeda selama operasi, baik rekursif atau non-rekursif - untuk lebih jelasnya lihat recurse dan mask. Juga seluruh transfer dalam smbclient .B dilakukan dengan biner.
Lihat juga printmode.
Saat di-ON, user akan mendapat prompt konfirmasi transfer dari setiap file Jika di-OFF, seluruh file akan ditransfer tanpa memberi prompt.
Saat di-ON, perintah mget dan mput akan memproses seluruh direktori sumber (direktori yang akan di-kopi) dan akan melakukan rekursi mask yang dimasukkan di perintah tersebut. Hanya mask yang ditentukan dengan perintah mask yang akan digunakan. Lihat juga mask.
Jika di-OFF, hanya mask di mget atau mput yang dipakai, sedang mask di perintah mask tidak akan diambil.
setmode filesaya +r
akan membuat filesaya jadi read only.
Beberapa server bingung dengan perbedaan huruf kapital/kecil dari nama user, password, nama share (alias nama servis) dan nama mesin. Jika anda gagal terhubung ke server, coba masukkan semua parameter dalam huruf kapital.
Kadang penting menggunakan opsi -n saat men-koneksi beberapa jenis server. Seperti OS/2 LanManager memaksa nama NetBIOS yang valid untuk digunakan, jadi anda butuh memberi nama yang valid dan dikenali oleh server.
smbclient mengenali nama file panjang (long file name) di server yang menggunakan protokol LANMAN2 atau di atasnya
Variabel USER berisi nama user yang menggunakan klien. Informasi ini hanya digunakan jika level protokol cukup tinggi untuk mendukung password session-level.
Variabel PASSWD berisi password user yang menggunakan klien. Informasi ini hanya digunakan jika level protokol cukup tinggi untuk mendukung password session-level.
Lokasi dari program klien ini (smbclient) adalah urusan system administrator. Lokasi berikut hanya merupakan saran.
Rekomendasi lokasi untuk smbclient adalah di direktori /usr/local/samba/bin atau /usr/samba/bin. Direktori ini sebaikanya bisa dibaca semua orang, dan hanya bisa ditulis oleh root. Program klien sendiri harus bisa dieksekusi oleh semua orang. Klien JANGAN diberi uid atau gid!
File log harus ditaruh di direktori yang bisa dibaca dan ditulis hanya oleh usernya.
Untuk mengetes smbclient, anda perlu tahu nama server yang menjalankan SMB/CIFS. Menjalankan smbd (8) sebagai user biasa - sebagai daemon di port yang bisa diakses (biasanya port di atas 1024) cukup memadai sebagai server untuk tes.
Sebagian besar diagnosa di smbclient di-log, yang namanya ditentukan pada saat kompilasi, tapi bisa di-override dari baris perintah.
Diagnosa tergantung pada level debug yang digunakan. Jika ada masalah set level debug ke 3, dan lihat file log.
Manual ini berlaku untuk Samba versi 2.0.
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.