summaryrefslogtreecommitdiff
path: root/docs/docbook/manpages/smbclient.1.sgml
blob: 008a63bf086a6e9b486d41834e3e361792460fe0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
<!--

	I am looking for help to finish SGML.

-->
<!-- manual page source format generated by PolyglotMan v3.0.9
     available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->

<RefEntry ID="smbclient.">
<RefMeta><RefEntryTitle>"smbclient</RefEntryTitle><ManVolNum>"</ManVolNum></RefMeta>



<Para><RefNameDiv><Title>Name</Title>smbclient </RefEntry><RefPurpose> ftp-like client to access SMB/CIFS resources on servers 

<Para></RefSect1>

<RefSynopsisDiv><Title>Synopsis</Title>

<Para><B>smbclient</B>
servicename [-s smb.conf] [-O socket options][-R name resolve order] [-M NetBIOS
name] [-i scope] [-N] [-n NetBIOS name] [-d debuglevel] [-P] [-p port] [-l log
basename] [-h] [-I dest IP] [-E] [-U username] [-L NetBIOS name] [-t terminal
code] [-m max protocol] [-b buffersize] [-W workgroup] [-T&lt;c|x&gt;IXFqgbNan] [-D directory]
[-c command string] 

<Para></RefSect1>

<RefSect1><Title>Description</Title>

<Para>This program is part of the <B>Samba</B> suite. 

<Para><B>smbclient</B>
is a client that can 'talk' to an SMB/CIFS server. It offers an interface
similar to that of the ftp program (see <B><Command>ftp (1)</B></Command>).  Operations include things
like getting files from the server to the local machine, putting files
from the local machine to the server, retrieving directory information
from the server and so on. 

<Para></RefSect1>

<RefSect1><Title>Options</Title>

<Para><ItemizedList MARK=Bullet>
<Term><B>servicename</B></Term><ListItem><Para>servicename is the name of
the service you want to use on the server. A service name takes the form
CW//server/service where <I>server</I> is the NetBIOS name of the SMB/CIFS server
offering the desired service and <I>service</I> is the name of the service offered.
Thus to connect to the service <I>printer</I> on the SMB/CIFS server <I>smbserver</I>,
you would use the servicename </Para></ListItem>
<Term>CW//smbserver/printer </Term><ListItem><Para></Para></ListItem>
<Term>Note that the server
name required is NOT necessarily the IP (DNS) </Term><ListItem><Para>host name of the server !
The name required is a NetBIOS server name, which may or may not be the
same as the IP hostname of the machine running the server. </Para></ListItem>
<Term>The server name
is looked up according to either the </Term><ListItem><Para><B>-R</B> parameter to <B>smbclient</B> or using
the <B>name resolve order</B> parameter in the smb.conf file, allowing an administrator
to change the order and methods by which server names are looked up. </Para></ListItem>
<Term><B>password</B></Term><ListItem><Para>password
is the password required to access the specified service on the specified
server. If this parameter is supplied, the <B>-N</B> option (suppress password prompt)
is assumed. </Para></ListItem>
<Term>There is no default password. If no password is supplied on the
</Term><ListItem><Para>command line (either by using this parameter or adding a password to the
<B>-U</B> option (see below)) and the <B>-N</B> option is not specified, the client will
prompt for a password, even if the desired service does not require one.
(If no password is required, simply press ENTER to provide a null password.)
</Para></ListItem>
<Term>Note: Some servers (including OS/2 and Windows for Workgroups) insist </Term><ListItem><Para>on
an uppercase password. Lowercase or mixed case passwords may be rejected
by these servers. </Para></ListItem>
<Term>Be cautious about including passwords in scripts. </Term><ListItem><Para></Para></ListItem>
<Term><B>-s smb.conf</B></Term><ListItem><Para>This
parameter specifies the pathname to the Samba configuration file, smb.conf.
This file controls all aspects of the Samba setup on the machine and smbclient
also needs to read this file. </Para></ListItem>
<Term><B>-O socket options</B></Term><ListItem><Para>TCP socket options to set
on the client socket. See the socket options parameter in the <B><Command>smb.conf (5)</B></Command>
manpage for the list of valid options. </Para></ListItem>
<Term><B>-R name resolve order</B></Term><ListItem><Para>This option allows
the user of smbclient to determine what name resolution services to use
when looking up the NetBIOS name of the host being connected to. </Para></ListItem>
<Term>The options
are :"lmhosts", "host", "wins" and "bcast". They cause </Term><ListItem><Para>names to be resolved
as follows : </Para></ListItem>
<Term>o</Term><ListItem><Para><B>lmhosts</B> : Lookup an IP address in the Samba lmhosts file.
The lmhosts file is stored in the same directory as the <B>smb.conf</B> file. </Para></ListItem>
<Term>o</Term><ListItem><Para><B>host</B>
: Do a standard host name to IP address resolution, using the system /etc/hosts,
NIS, or DNS lookups. This method of name resolution is operating system
depended for instance on IRIX or Solaris this may be controlled by the
<I>/etc/nsswitch.conf</I> file).   </Para></ListItem>
<Term>o</Term><ListItem><Para><B>wins</B> : Query a name with the IP address listed
in the <B>wins server</B> parameter in the smb.conf file. If  no WINS server has
been specified this method will be ignored. </Para></ListItem>
<Term>o</Term><ListItem><Para><B>bcast</B> : Do a broadcast on each
of the known local interfaces listed in the <B>interfaces</B> parameter in the
smb.conf file. This is the least reliable of the name resolution methods
as it depends on the target host being on a locally connected subnet.  </Para></ListItem>
<Term>If
this parameter is not set then the name resolve order defined </Term><ListItem><Para>in the <B>smb.conf</B>
file parameter  (<B>name resolve order</B>) will be used. </Para></ListItem>
<Term>The default order is
lmhosts, host, wins, bcast and without this </Term><ListItem><Para>parameter or any entry in the
<B>"name resolve order"</B> parameter of the <B>smb.conf</B> file the name resolution
methods will be attempted in this order. </Para></ListItem>
<Term><B>-M NetBIOS name</B></Term><ListItem><Para>This options allows
you to send messages, using the "WinPopup" protocol, to another computer.
Once a connection is established you then type your message, pressing ^D
(control-D) to end. </Para></ListItem>
<Term>If the receiving computer is running WinPopup the user
will receive </Term><ListItem><Para>the message and probably a beep. If they are not running WinPopup
the message will be lost, and no error message will occur. </Para></ListItem>
<Term>The message is
also automatically truncated if the message is over </Term><ListItem><Para>1600 bytes, as this
is the limit of the protocol. </Para></ListItem>
<Term>One useful trick is to cat the message through
<B>smbclient</B>. </Term><ListItem><Para>For example: </Para></ListItem>
<Term>CWcat mymessage.txt | smbclient -M FRED </Term><ListItem><Para></Para></ListItem>
<Term>will send the
message in the file <I>mymessage.txt</I> to the machine FRED. </Term><ListItem><Para></Para></ListItem>
<Term>You may also find
the <B>-U</B> and <B>-I</B> options useful, as they allow </Term><ListItem><Para>you to control the FROM and TO
parts of the message. </Para></ListItem>
<Term>See the <B>message command</B> </Term><ListItem><Para>parameter in the <B><Command>smb.conf (5)</B></Command>
for a description of how to handle incoming WinPopup messages in Samba.
</Para></ListItem>
<Term>Note: Copy WinPopup into the startup group on your WfWg PCs if you </Term><ListItem><Para>want
them to always be able to receive messages. </Para></ListItem>
<Term><B>-i scope</B></Term><ListItem><Para>This specifies a NetBIOS
scope that smbclient will use to communicate with when generating NetBIOS
names. For details on the use of NetBIOS scopes, see rfc1001.txt and rfc1002.txt.
NetBIOS scopes are <I>very</I> rarely used, only set this parameter if you are
the system administrator in charge of all the NetBIOS systems you communicate
with. </Para></ListItem>
<Term><B>-N</B></Term><ListItem><Para>If specified, this parameter suppresses the normal password prompt
from the client to the user. This is useful when accessing a service that
does not require a password. </Para></ListItem>
<Term>Unless a password is specified on the command
line or this parameter </Term><ListItem><Para>is specified, the client will request a password.
</Para></ListItem>
<Term><B>-n NetBIOS name</B></Term><ListItem><Para>By default, the client will use the local machine's hostname
(in uppercase) as its NetBIOS name. This parameter allows you to override
the host name and use whatever NetBIOS name you wish. </Para></ListItem>
<Term><B>-d debuglevel</B></Term><ListItem><Para>debuglevel
is an integer from 0 to 10, or the letter 'A'. </Para></ListItem>
<Term>The default value if this parameter
is not specified is zero. </Term><ListItem><Para></Para></ListItem>
<Term>The higher this value, the more detail will be
logged to the log files </Term><ListItem><Para>about the activities of the client. At level 0,
only critical errors and serious warnings will be logged. Level 1 is a reasonable
level for day to day running - it generates a small amount of information
about operations carried out. </Para></ListItem>
<Term>Levels above 1 will generate considerable
amounts of log data, and </Term><ListItem><Para>should only be used when investigating a problem.
Levels above 3 are designed for use only by developers and generate HUGE
amounts of log data, most of which is extremely cryptic. If debuglevel is
set to the letter 'A', then <I>all</I> debug messages will be printed. This setting
is for developers only (and people who <I>really</I> want to know how the code
works internally). </Para></ListItem>
<Term>Note that specifying this parameter here will override
the <B>log </B></Term><ListItem><Para>level parameter in the <B><Command>smb.conf (5)</B></Command> file. </Para></ListItem>
<Term><B>-P</B></Term><ListItem><Para>This option is no longer
used. The code in Samba2.0 now lets the server decide the device type, so
no printer specific flag is needed. </Para></ListItem>
<Term><B>-p port</B></Term><ListItem><Para>This number is the TCP port number
that will be used when making connections to the server. The standard (well-known)
TCP port number for an SMB/CIFS server is 139, which is the default. </Para></ListItem>
<Term><B>-l logfilename</B></Term><ListItem><Para>If
specified, logfilename specifies a base filename into which operational
data from the running client will be logged. </Para></ListItem>
<Term>The default base name is specified
at compile time. </Term><ListItem><Para></Para></ListItem>
<Term>The base name is used to generate actual log file names.
For example, </Term><ListItem><Para>if the name specified was "log", the debug file would be CWlog.client.
</Para></ListItem>
<Term>The log file generated is never removed by the client. </Term><ListItem><Para></Para></ListItem>
<Term><B>-h</B></Term><ListItem><Para>Print the usage
message for the client. </Para></ListItem>
<Term><B>-I IP address</B></Term><ListItem><Para>IP address is the address of the server
to connect to. It should be specified in standard "a.b.c.d" notation. </Para></ListItem>
<Term>Normally
the client would attempt to locate a named SMB/CIFS server by </Term><ListItem><Para>looking it
up via the NetBIOS name resolution mechanism described above in the <B>name
resolve order</B> parameter above. Using this parameter will force the client
to assume that the server is on the machine with the specified IP address
and the NetBIOS name component of the resource being connected to will
be ignored. </Para></ListItem>
<Term>There is no default for this parameter. If not supplied, it will
be </Term><ListItem><Para>determined automatically by the client as described above. </Para></ListItem>
<Term><B>-E</B></Term><ListItem><Para>This parameter
causes the client to write messages to the standard error stream (stderr)
rather than to the standard output stream. </Para></ListItem>
<Term>By default, the client writes
messages to standard output - typically </Term><ListItem><Para>the user's tty. </Para></ListItem>
<Term><B>-U username</B></Term><ListItem><Para>This specifies
the user name that will be used by the client to make a connection, assuming
your server is not a downlevel server that is running a protocol level
that uses passwords on shares, not on usernames. </Para></ListItem>
<Term>Some servers are fussy
about the case of this name, and some insist </Term><ListItem><Para>that it must be a valid NetBIOS
name. </Para></ListItem>
<Term>If no username is supplied, it will default to an uppercase version
of </Term><ListItem><Para>the environment variable CWUSER or CWLOGNAME in that order.  If no username
is supplied and neither environment variable exists the username "GUEST"
will be used. </Para></ListItem>
<Term>If the CWUSER environment variable contains a '%' character,
</Term><ListItem><Para>everything after that will be treated as a password. This allows you to
set the environment variable to be CWUSER=username%password so that a password
is not passed on the command line (where it may be seen by the ps command).
</Para></ListItem>
<Term>You can specify a domain name as part of the username by using a  </Term><ListItem><Para>username
of the form "DOMAIN/user" or "DOMAIN\user". </Para></ListItem>
<Term>If the service you are connecting
to requires a password, it can be </Term><ListItem><Para>supplied using the <B>-U</B> option, by appending
a percent symbol ("%") then the password to username.  For example, to attach
to a service as user CW"fred" with password CW"secret", you would specify.
 <BR>
</Para></ListItem>
<Term>CW-U fred%secret  </Term><ListItem><Para><BR>
</Para></ListItem>
<Term>on the command line. Note that there are no spaces around the percent </Term><ListItem><Para>symbol.
</Para></ListItem>
<Term>If you specify the password as part of username then the <B>-N</B> option </Term><ListItem><Para>(suppress
password prompt) is assumed. </Para></ListItem>
<Term>If you specify the password as a parameter
<I>AND</I> as part of username </Term><ListItem><Para>then the password as part of username will take
precedence. Putting nothing before or nothing after the percent symbol will
cause an empty username or an empty password to be used, respectively. </Para></ListItem>
<Term>The
password may also be specified by setting up an environment </Term><ListItem><Para>variable called
CWPASSWD that contains the users password. Note that this may be very insecure
on some systems but on others allows users to script smbclient commands
without having a password appear in the command line of a process listing.
</Para></ListItem>
<Term>A third option is to use a credentials file which contains </Term><ListItem><Para>the plaintext
of the username and password.  This option is mainly provided for scripts
where the admin doesn't desire to pass the credentials on the command line
or via environment variables. If this method is used, make certain that
the permissions on the file restrict access from unwanted users.  See the
<B>-A</B> for more details. </Para></ListItem>
<Term>Note: Some servers (including OS/2 and Windows for Workgroups)
insist </Term><ListItem><Para>on an uppercase password. Lowercase or mixed case passwords may be
rejected by these servers. </Para></ListItem>
<Term>Be cautious about including passwords in scripts
or in the </Term><ListItem><Para>CWPASSWD environment variable. Also, on many systems the command
line of a running process may be seen via the CWps command to be safe always
allow smbclient to prompt for a password and type it in directly. </Para></ListItem>
<Term><B>-A &lt;filename&gt;</B></Term><ListItem><Para>This
option allows you to specify a file from which to read the username and
password used in the connection.  The format of the file is </Para></ListItem>
<Term>CWusername =
&lt;value&gt;  </Term><ListItem><Para><BR>
CWpassword = &lt;value  <BR>
</Para></ListItem>
<Term>Make certain that the permissions on the file restrict access from </Term><ListItem><Para>unwanted
users. </Para></ListItem>
<Term><B>-L</B></Term><ListItem><Para>This option allows you to look at what services are available on
a server. You use it as CW"smbclient -L host" and a list should appear.  The
<B>-I</B> option may be useful if your NetBIOS names don't match your tcp/ip dns
host names or if you are trying to reach a host on another network. </Para></ListItem>
<Term><B>-t terminal
code</B></Term><ListItem><Para>This option tells smbclient how to interpret filenames coming from
the remote server. Usually Asian language multibyte UNIX implementations
use different character sets than SMB/CIFS servers (<I>EUC</I> instead of <I>SJIS</I>
for example). Setting this parameter will let smbclient convert between
the UNIX filenames and the SMB filenames correctly. This option has not
been seriously tested and may have some problems. </Para></ListItem>
<Term>The terminal codes include
CWsjis, CWeuc, CWjis7, CWjis8, </Term><ListItem><Para>CWjunet, CWhex, CWcap. This is not a complete
list, check the Samba source code for the complete list. </Para></ListItem>
<Term><B>-m max protocol
level</B></Term><ListItem><Para>With the new code in Samba2.0, <B>smbclient</B> always attempts to connect
at the maximum protocols level the server supports. This parameter is preserved
for backwards compatibility, but any string following the <B>-m</B> will be ignored.
</Para></ListItem>
<Term><B>-b buffersize</B></Term><ListItem><Para>This option changes the transmit/send buffer size when getting
or putting a file from/to the server. The default is 65520 bytes. Setting
this value smaller (to 1200 bytes) has been observed to speed up file transfers
to and from a Win9x server. </Para></ListItem>
<Term><B>-W WORKGROUP</B></Term><ListItem><Para>Override the default workgroup specified
in the <B>workgroup</B> parameter of the <B>smb.conf</B> file for this connection. This
may be needed to connect to some servers. </Para></ListItem>
<Term><B>-T tar options</B></Term><ListItem><Para>smbclient may be
used to create <B><Command>tar (1)</B></Command> compatible backups of all the files on an SMB/CIFS
share. The secondary tar flags that can be given to this option are : </Para></ListItem>
<Term><B>c</B></Term><ListItem><Para>Create
a tar file on UNIX. Must be followed by the name of a tar file, tape device
or CW"-" for standard output. If using standard output you must turn the
log level to its lowest value CW-d0 to avoid corrupting your tar file. This
flag is mutually exclusive with the <B>x</B> flag. </Para></ListItem>
<Term><B>x</B></Term><ListItem><Para>Extract (restore) a local tar
file back to a share. Unless the <B>-D</B> option is given, the tar files will be
restored from the top level of the share. Must be followed by the name of
the tar file, device or CW"-" for standard input. Mutually exclusive with
the <B>c</B> flag. Restored files have their creation times (mtime) set to the
date saved in the tar file. Directories currently do not get their creation
dates restored properly. </Para></ListItem>
<Term><B>I</B></Term><ListItem><Para>Include files and directories. Is the default behavior
when filenames are specified above. Causes tar files to be included in an
extract or create (and therefore everything else to be excluded). See example
below.  Filename globbing works  in one of two ways.  See <B>r</B> below. </Para></ListItem>
<Term><B>X</B></Term><ListItem><Para>Exclude
files and directories. Causes tar files to be excluded from an extract or
create. See example below.  Filename globbing works in one of two ways now.
See <B>r</B> below. </Para></ListItem>
<Term><B>b</B></Term><ListItem><Para>Blocksize. Must be followed by a valid (greater than zero)
blocksize.  Causes tar file to be written out in blocksize*TBLOCK (usually
512 byte) blocks. </Para></ListItem>
<Term><B>g</B></Term><ListItem><Para>Incremental. Only back up files that have the archive
bit set. Useful only with the <B>c</B> flag. </Para></ListItem>
<Term><B>q</B></Term><ListItem><Para>Quiet. Keeps tar from printing diagnostics
as it works.  This is the same as tarmode quiet. </Para></ListItem>
<Term><B>r</B></Term><ListItem><Para>Regular expression include
or exclude.  Uses regular  regular expression matching for excluding or
excluding files if  compiled with HAVE_REGEX_H. However this mode can be
very slow. If  not compiled with HAVE_REGEX_H, does a limited wildcard match
on * and  ?. </Para></ListItem>
<Term><B>N</B></Term><ListItem><Para>Newer than. Must be followed by the name of a file whose date
is compared against files found on the share during a create. Only files
newer than the file specified are backed up to the tar file. Useful only
with the <B>c</B> flag. </Para></ListItem>
<Term><B>a</B></Term><ListItem><Para>Set archive bit. Causes the archive bit to be reset when
a file is backed up. Useful with the <B>g</B> and <B>c</B> flags. </Para></ListItem>
<Term><I>Tar Long File Names</I> </Term><ListItem><Para></Para></ListItem>
<Term>smbclient's
tar option now supports long file names both on backup and </Term><ListItem><Para>restore. However,
the full path name of the file must be less than 1024 bytes.  Also, when
a tar archive is created, smbclient's tar option places all files in the
archive with relative names, not absolute names. </Para></ListItem>
<Term><I>Tar Filenames</I> </Term><ListItem><Para></Para></ListItem>
<Term>All file
names can be given as DOS path names (with CW\ as the </Term><ListItem><Para>component separator)
or as UNIX path names (with CW/ as the component separator). </Para></ListItem>
<Term><I>Examples</I> </Term><ListItem><Para></Para></ListItem>
<Term>o</Term><ListItem><Para>Restore
from tar file backup.tar into myshare on mypc (no password on share). </Para></ListItem>
<Term>CWsmbclient
//mypc/myshare "" -N -Tx backup.tar </Term><ListItem><Para></Para></ListItem>
<Term>o</Term><ListItem><Para>Restore everything except users/docs
</Para></ListItem>
<Term>CWsmbclient //mypc/myshare "" -N -TXx backup.tar users/docs </Term><ListItem><Para></Para></ListItem>
<Term>o</Term><ListItem><Para>Create a tar
file of the files beneath users/docs. </Para></ListItem>
<Term>CWsmbclient //mypc/myshare "" -N -Tc
backup.tar users/docs </Term><ListItem><Para></Para></ListItem>
<Term>o</Term><ListItem><Para>Create the same tar file as above, but now use a
DOS path name. </Para></ListItem>
<Term>CWsmbclient //mypc/myshare "" -N -tc backup.tar users\edocs </Term><ListItem><Para></Para></ListItem>
<Term>o</Term><ListItem><Para>Create
a tar file of all the files and directories in the share. </Para></ListItem>
<Term>CWsmbclient //mypc/myshare
"" -N -Tc backup.tar * </Term><ListItem><Para></Para></ListItem>
<Term><B>-D initial directory</B></Term><ListItem><Para>Change to initial directory before
starting. Probably only of any use with the tar <B>-T</B> option. </Para></ListItem>
<Term><B>-c command string</B></Term><ListItem><Para>command
string is a semicolon separated list of commands to be executed instead
of prompting from stdin. <B>-N</B> is implied by <B>-c</B>. </Para></ListItem>
<Term>This is particularly useful in
scripts and for printing stdin to the </Term><ListItem><Para>server, e.g. CW-c 'print -'. </Para></ListItem>
</ItemizedList>


<Para></RefSect1>

<RefSect1><Title>Operations</Title>

<Para>Once
the client is running, the user is presented with a prompt : 

<Para>CWsmb:\&gt; 

<Para>The
backslash ("\") <ItemizedList MARK=Bullet>
<Term>indicates the current working directory on the </Term><ListItem><Para>server, and
will change if the current working directory is changed. </Para></ListItem>
</ItemizedList>


<Para>The prompt indicates
that the client is ready and waiting to carry out a user command. Each command
is a single word, optionally followed by parameters specific to that command.
Command and parameters are space-delimited unless these notes specifically
state otherwise. All commands are case-insensitive.  Parameters to commands
may or may not be case sensitive, depending on the command. 

<Para>You can specify
file names which have spaces in them by quoting the name with double quotes,
for example "a long file name". 

<Para>Parameters shown in square brackets (e.g.,
"[parameter]") are optional. If not given, the command will use suitable
defaults. Parameters shown in angle brackets (e.g., "&lt;parameter&gt;") are required.


<Para>Note that all commands operating on the server are actually performed by
issuing a request to the server. Thus the behavior may vary from server
to server, depending on how the server was implemented. 

<Para>The commands available
are given here in alphabetical order. 

<Para><ItemizedList MARK=Bullet>
<Term><B>? [command]</B></Term><ListItem><Para>If "command" is specified,
the <B>?</B> command will display a brief informative message about the specified
command.  If no command is specified, a list of available commands will
be displayed. </Para></ListItem>
<Term><B>! [shell command]</B></Term><ListItem><Para>If "shell command" is specified, the <B>!</B>  command
will execute a shell locally and run the specified shell command. If no
command is specified, a local shell will be run. </Para></ListItem>
<Term><B>cd [directory name]</B></Term><ListItem><Para>If "directory
name" is specified, the current working directory on the server will be
changed to the directory specified. This operation will fail if for any
reason the specified directory is inaccessible. </Para></ListItem>
<Term>If no directory name is
specified, the current working directory on </Term><ListItem><Para>the server will be reported.
</Para></ListItem>
<Term><B>del &lt;mask&gt;</B></Term><ListItem><Para>The client will request that the server attempt to delete all files
matching "mask" from the current working directory on the server. </Para></ListItem>
<Term><B>dir &lt;mask&gt;</B></Term><ListItem><Para>A
list of the files matching "mask" in the current working directory on the
server will be retrieved from the server and displayed. </Para></ListItem>
<Term><B>exit</B></Term><ListItem><Para>Terminate the
connection with the server and exit from the program. </Para></ListItem>
<Term><B>get &lt;remote file name&gt;
[local file name]</B></Term><ListItem><Para>Copy the file called "remote file name" from the server
to the machine running the client. If specified, name the local copy "local
file name".  Note that all transfers in smbclient are binary. See also the
<B>lowercase</B> command. </Para></ListItem>
<Term><B>help [command]</B></Term><ListItem><Para>See the <B>?</B> command above. </Para></ListItem>
<Term><B>lcd [directory
name]</B></Term><ListItem><Para>If "directory name" is specified, the current working directory on
the local machine will be changed to the directory specified. This operation
will fail if for any reason the specified directory is inaccessible. </Para></ListItem>
<Term>If
no directory name is specified, the name of the current working </Term><ListItem><Para>directory
on the local machine will be reported. </Para></ListItem>
<Term><B>lowercase</B></Term><ListItem><Para>Toggle lowercasing of filenames
for the <B>get</B> and <B>mget</B> commands. </Para></ListItem>
<Term>When lowercasing is toggled ON, local filenames
are converted to </Term><ListItem><Para>lowercase when using the <B>get</B> and <B>mget</B> commands. This is
often useful when copying (say) MSDOS files from a server, because lowercase
filenames are the norm on UNIX systems. </Para></ListItem>
<Term><B>ls &lt;mask&gt;</B></Term><ListItem><Para>See the <B>dir</B> command above.
</Para></ListItem>
<Term><B>mask &lt;mask&gt;</B></Term><ListItem><Para>This command allows the user to set up a mask which will be used
during recursive operation of the <B>mget</B> and <B>mput</B> commands. </Para></ListItem>
<Term>The masks specified
to the <B>mget</B> and </Term><ListItem><Para><B>mput</B> commands act as filters for directories rather than
files when recursion is toggled ON. </Para></ListItem>
<Term>The mask specified with the .B mask command
is necessary to filter </Term><ListItem><Para>files within those directories. For example, if the
mask specified in an <B>mget</B> command is "source*" and the mask specified with
the mask command is "*.c" and recursion is toggled ON, the <B>mget</B> command
will retrieve all files matching "*.c" in all directories below and including
all directories matching "source*" in the current working directory. </Para></ListItem>
<Term>Note
that the value for mask defaults to blank (equivalent to "*") and </Term><ListItem><Para>remains
so until the mask command is used to change it. It retains the most recently
specified value indefinitely. To avoid unexpected results it would be wise
to change the value of .I mask back to "*" after using the <B>mget</B> or <B>mput</B>
commands. </Para></ListItem>
<Term><B>md &lt;directory name&gt;</B></Term><ListItem><Para>See the <B>mkdir</B> command. </Para></ListItem>
<Term><B>mget &lt;mask&gt;</B></Term><ListItem><Para>Copy all files
matching mask from the server to the machine running the client. </Para></ListItem>
<Term>Note that
mask is interpreted differently during recursive operation </Term><ListItem><Para>and non-recursive
operation - refer to the <B>recurse</B> and <B>mask</B> commands for more information.
Note that all transfers in .B smbclient are binary. See also the <B>lowercase</B>
command. </Para></ListItem>
<Term><B>mkdir &lt;directory name&gt;</B></Term><ListItem><Para>Create a new directory on the server (user
access privileges permitting) with the specified name. </Para></ListItem>
<Term><B>mput &lt;mask&gt;</B></Term><ListItem><Para>Copy all
files matching mask in the current working directory on the local machine
to the current working directory on the server. </Para></ListItem>
<Term>Note that mask is interpreted
differently during recursive operation </Term><ListItem><Para>and non-recursive operation - refer
to the <B>recurse</B> and <B>mask</B> commands for more information. Note that all transfers
in .B smbclient are binary. </Para></ListItem>
<Term><B>print &lt;file name&gt;</B></Term><ListItem><Para>Print the specified file from
the local machine through a printable service on the server. </Para></ListItem>
<Term>See also the
<B>printmode</B> command. </Term><ListItem><Para></Para></ListItem>
<Term><B>printmode &lt;graphics or text&gt;</B></Term><ListItem><Para>Set the print mode to suit
either binary data (such as graphical information) or text. Subsequent print
commands will use the currently set print mode. </Para></ListItem>
<Term><B>prompt</B></Term><ListItem><Para>Toggle prompting for
filenames during operation of the <B>mget</B> and <B>mput</B> commands. </Para></ListItem>
<Term>When toggled ON,
the user will be prompted to confirm the transfer of </Term><ListItem><Para>each file during these
commands. When toggled OFF, all specified files will be transferred without
prompting. </Para></ListItem>
<Term><B>put &lt;local file name&gt; [remote file name]</B></Term><ListItem><Para>Copy the file called "local
file name" from the machine running the client to the server. If specified,
name the remote copy "remote file name". Note that all transfers in smbclient
are binary. See also the <B>lowercase</B> command. </Para></ListItem>
<Term><B>queue</B></Term><ListItem><Para>Displays the print queue,
showing the job id, name, size and current status. </Para></ListItem>
<Term><B>quit</B></Term><ListItem><Para>See the <B>exit</B> command.
</Para></ListItem>
<Term><B>rd &lt;directory name&gt;</B></Term><ListItem><Para>See the <B>rmdir</B> command. </Para></ListItem>
<Term><B>recurse</B></Term><ListItem><Para>Toggle directory recursion
for the commands <B>mget</B> and <B>mput</B>. </Para></ListItem>
<Term>When toggled ON, these commands will process
all directories in the </Term><ListItem><Para>source directory (i.e., the directory they are copying
.IR from ) and will recurse into any that match the mask specified to the
command. Only files that match the mask specified using the <B>mask</B> command
will be retrieved. See also the <B>mask</B> command. </Para></ListItem>
<Term>When recursion is toggled OFF,
only files from the current working </Term><ListItem><Para>directory on the source machine that
match the mask specified to the <B>mget</B> or <B>mput</B> commands will be copied, and
any mask specified using the <B>mask</B> command will be ignored. </Para></ListItem>
<Term><B>rm &lt;mask&gt;</B></Term><ListItem><Para>Remove
all files matching mask from the current working directory on the server.
</Para></ListItem>
<Term><B>rmdir &lt;directory name&gt;</B></Term><ListItem><Para>Remove the specified directory (user access privileges
permitting) from the server. </Para></ListItem>
<Term><B>tar &lt;c|x&gt;[IXbgNa]</B></Term><ListItem><Para>Performs a tar operation - see
the <B>-T</B> command line option above. Behavior may be affected by the <B>tarmode</B>
command (see below). Using g (incremental) and N (newer) will affect tarmode
settings. Note that using the "-" option with tar x may not work - use the
command line option instead. </Para></ListItem>
<Term><B>blocksize &lt;blocksize&gt;</B></Term><ListItem><Para>Blocksize. Must be followed
by a valid (greater than zero) blocksize. Causes tar file to be written
out in blocksize*TBLOCK (usually 512 byte) blocks. </Para></ListItem>
<Term><B>tarmode &lt;full|inc|reset|noreset&gt;</B></Term><ListItem><Para>Changes
tar's behavior with regard to archive bits. In full mode, tar will back up
everything regardless of the archive bit setting (this is the default mode).
In incremental mode, tar will only back up files with the archive bit set.
In reset mode, tar will reset the archive bit on all files it backs up
(implies read/write share). </Para></ListItem>
<Term><B>setmode &lt;filename&gt; &lt;perm=[+|\-]rsha&gt;</B></Term><ListItem><Para>A version of the
DOS attrib command to set file permissions. For example: </Para></ListItem>
<Term>CWsetmode myfile
+r </Term><ListItem><Para></Para></ListItem>
<Term>would make myfile read only. </Term><ListItem><Para></Para></ListItem>
</ItemizedList>


<Para></RefSect1>

<RefSect1><Title>Notes</Title>

<Para>Some servers are fussy about the case
of supplied usernames, passwords, share names (AKA service names) and machine
names. <ItemizedList MARK=Bullet>
<Term>If you </Term><ListItem><Para>fail to connect try giving all parameters in uppercase. </Para></ListItem>
</ItemizedList>


<Para>It
is often necessary to use the <B>-n</B> option when connecting to some types of
servers. For example OS/2 LanManager insists on a valid NetBIOS name being
used, so you need to supply a valid name that would be known to the server.


<Para>smbclient supports long file names where the server supports the LANMAN2
protocol or above. 

<Para></RefSect1>

<RefSect1><Title>Environment Variables</Title>

<Para>The variable <B>USER</B> may contain the
username of the person using the client.  This information is used only
if the protocol level is high enough to support session-level passwords.


<Para>The variable <B>PASSWD</B> may contain the password of the person using the client.
 This information is used only if the protocol level is high enough to
support session-level passwords. 

<Para></RefSect1>

<RefSect1><Title>Installation</Title>

<Para>The location of the client program
is a matter for individual system administrators. The following are thus
suggestions only. 

<Para>It is recommended that the smbclient software be installed
in the /usr/local/samba/bin or /usr/samba/bin directory, this directory
readable by all, writeable only by root. The client program itself should
be executable by all. The client should <I>NOT</I> be setuid or setgid! 

<Para>The client
log files should be put in a directory readable and writeable only by the
user. 

<Para>To test the client, you will need to know the name of a running SMB/CIFS
server. It is possible to run <B><Command>smbd (8)</B></Command> an ordinary user - running that server
as a daemon on a user-accessible port (typically any port number over 1024)
would provide a suitable test server. 

<Para></RefSect1>

<RefSect1><Title>Diagnostics</Title>

<Para>Most diagnostics issued
by the client are logged in a specified log file. The log file name is specified
at compile time, but may be overridden on the command line. 

<Para>The number and
nature of diagnostics available depends on the debug level used by the
client. If you have problems, set the debug level to 3 and peruse the log
files. 

<Para></RefSect1>

<RefSect1><Title>Version</Title>

<Para>This man page is correct for version 2.0 of the Samba suite.


<Para></RefSect1>

<RefSect1><Title>Author</Title>

<Para>The original Samba software and related utilities were created by
Andrew Tridgell <I>samba@samba.org</I>. Samba is now developed by the Samba Team
as an Open Source project similar to the way the Linux kernel is developed.


<Para>The original Samba man pages were written by Karl Auer. The man page sources
were converted to YODL format (another excellent piece of Open Source software,
available at <B>ftp://ftp.icce.rug.nl/pub/unix/</B>) and updated for the Samba2.0
release by Jeremy Allison. <I>samba@samba.org</I>. 

<Para>See <B><Command>samba (7)</B></Command> to find out how
to get a full list of contributors and details on how to submit bug reports,
comments etc. </RefSect1>

</RefEntry>