summaryrefslogtreecommitdiff
path: root/docs/docbook/manpages/smbclient.1.sgml
blob: 314c8159701f094dcae2774fb7c1ab3c7a80414d (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

Namesmbclient - ftp-like client to access SMB/CIFS resources on servers 
Synopsis
smbclient
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<c|x>IXFqgbNan] [-D directory]
[-c command string] 
Description
This program is part of the Samba suite. 
smbclient
is a client that can 'talk' to an SMB/CIFS server. It offers an interface
similar to that of the ftp program (see ftp (1)).  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. 
Options
servicenameservicename is the name of
the service you want to use on the server. A service name takes the form
CW//server/service where server is the NetBIOS name of the SMB/CIFS server
offering the desired service and service is the name of the service offered.
Thus to connect to the service printer on the SMB/CIFS server smbserver,
you would use the servicename CW//smbserver/printer Note that the server
name required is NOT necessarily the IP (DNS) 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. The server name
is looked up according to either the -R parameter to smbclient or using
the name resolve order parameter in the smb.conf file, allowing an administrator
to change the order and methods by which server names are looked up. passwordpassword
is the password required to access the specified service on the specified
server. If this parameter is supplied, the -N option (suppress password prompt)
is assumed. There is no default password. If no password is supplied on the
command line (either by using this parameter or adding a password to the
-U option (see below)) and the -N 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.)
Note: Some servers (including OS/2 and Windows for Workgroups) insist on
an uppercase password. Lowercase or mixed case passwords may be rejected
by these servers. Be cautious about including passwords in scripts. -s smb.confThis
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. -O socket optionsTCP socket options to set
on the client socket. See the socket options parameter in the smb.conf (5)
manpage for the list of valid options. -R name resolve orderThis 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. The options
are :"lmhosts", "host", "wins" and "bcast". They cause names to be resolved
as follows : olmhosts : Lookup an IP address in the Samba lmhosts file.
The lmhosts file is stored in the same directory as the smb.conf file. ohost
: 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
/etc/nsswitch.conf file).   owins : Query a name with the IP address listed
in the wins server parameter in the smb.conf file. If  no WINS server has
been specified this method will be ignored. obcast : Do a broadcast on each
of the known local interfaces listed in the interfaces 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.  If
this parameter is not set then the name resolve order defined in the smb.conf
file parameter  (name resolve order) will be used. The default order is
lmhosts, host, wins, bcast and without this parameter or any entry in the
"name resolve order" parameter of the smb.conf file the name resolution
methods will be attempted in this order. -M NetBIOS nameThis 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. If the receiving computer is running WinPopup the user
will receive the message and probably a beep. If they are not running WinPopup
the message will be lost, and no error message will occur. The message is
also automatically truncated if the message is over 1600 bytes, as this
is the limit of the protocol. One useful trick is to cat the message through
smbclient. For example: CWcat mymessage.txt | smbclient -M FRED will send the
message in the file mymessage.txt to the machine FRED. You may also find
the -U and -I options useful, as they allow you to control the FROM and TO
parts of the message. See the message command parameter in the smb.conf (5)
for a description of how to handle incoming WinPopup messages in Samba.
Note: Copy WinPopup into the startup group on your WfWg PCs if you want
them to always be able to receive messages. -i scopeThis 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 very rarely used, only set this parameter if you are
the system administrator in charge of all the NetBIOS systems you communicate
with. -NIf 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. Unless a password is specified on the command
line or this parameter is specified, the client will request a password.
-n NetBIOS nameBy 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. -d debugleveldebuglevel
is an integer from 0 to 10, or the letter 'A'. The default value if this parameter
is not specified is zero. The higher this value, the more detail will be
logged to the log files 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. Levels above 1 will generate considerable
amounts of log data, and 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 all debug messages will be printed. This setting
is for developers only (and people who really want to know how the code
works internally). Note that specifying this parameter here will override
the log level parameter in the smb.conf (5) file. -PThis 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. -p portThis 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. -l logfilenameIf
specified, logfilename specifies a base filename into which operational
data from the running client will be logged. The default base name is specified
at compile time. The base name is used to generate actual log file names.
For example, if the name specified was "log", the debug file would be CWlog.client.
The log file generated is never removed by the client. -hPrint the usage
message for the client. -I IP addressIP address is the address of the server
to connect to. It should be specified in standard "a.b.c.d" notation. Normally
the client would attempt to locate a named SMB/CIFS server by looking it
up via the NetBIOS name resolution mechanism described above in the name
resolve order 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. There is no default for this parameter. If not supplied, it will
be determined automatically by the client as described above. -EThis parameter
causes the client to write messages to the standard error stream (stderr)
rather than to the standard output stream. By default, the client writes
messages to standard output - typically the user's tty. -U usernameThis 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. Some servers are fussy
about the case of this name, and some insist that it must be a valid NetBIOS
name. If no username is supplied, it will default to an uppercase version
of 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. If the CWUSER environment variable contains a '%' character,
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).
You can specify a domain name as part of the username by using a  username
of the form "DOMAIN/user" or "DOMAIN\user". If the service you are connecting
to requires a password, it can be supplied using the -U 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.
 
CW-U fred%secret  
on the command line. Note that there are no spaces around the percent symbol.
If you specify the password as part of username then the -N option (suppress
password prompt) is assumed. If you specify the password as a parameter
AND as part of username 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. The
password may also be specified by setting up an environment 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.
A third option is to use a credentials file which contains 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
-A for more details. Note: Some servers (including OS/2 and Windows for Workgroups)
insist on an uppercase password. Lowercase or mixed case passwords may be
rejected by these servers. Be cautious about including passwords in scripts
or in the 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. -A <filename>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 CWusername =
<value>  
CWpassword = <value  
Make certain that the permissions on the file restrict access from unwanted
users. -LThis 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
-I 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. -t terminal
codeThis 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 (EUC instead of SJIS
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. The terminal codes include
CWsjis, CWeuc, CWjis7, CWjis8, CWjunet, CWhex, CWcap. This is not a complete
list, check the Samba source code for the complete list. -m max protocol
levelWith the new code in Samba2.0, smbclient always attempts to connect
at the maximum protocols level the server supports. This parameter is preserved
for backwards compatibility, but any string following the -m will be ignored.
-b buffersizeThis 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. -W WORKGROUPOverride the default workgroup specified
in the workgroup parameter of the smb.conf file for this connection. This
may be needed to connect to some servers. -T tar optionssmbclient may be
used to create tar (1) compatible backups of all the files on an SMB/CIFS
share. The secondary tar flags that can be given to this option are : cCreate
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 x flag. xExtract (restore) a local tar
file back to a share. Unless the -D 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 c 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. IInclude 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 r below. XExclude
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 r below. bBlocksize. Must be followed by a valid (greater than zero)
blocksize.  Causes tar file to be written out in blocksize*TBLOCK (usually
512 byte) blocks. gIncremental. Only back up files that have the archive
bit set. Useful only with the c flag. qQuiet. Keeps tar from printing diagnostics
as it works.  This is the same as tarmode quiet. rRegular 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  ?. NNewer 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 c flag. aSet archive bit. Causes the archive bit to be reset when
a file is backed up. Useful with the g and c flags. Tar Long File Names smbclient's
tar option now supports long file names both on backup and 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. Tar Filenames All file
names can be given as DOS path names (with CW\ as the component separator)
or as UNIX path names (with CW/ as the component separator). Examples oRestore
from tar file backup.tar into myshare on mypc (no password on share). CWsmbclient
//mypc/myshare "" -N -Tx backup.tar oRestore everything except users/docs
CWsmbclient //mypc/myshare "" -N -TXx backup.tar users/docs oCreate a tar
file of the files beneath users/docs. CWsmbclient //mypc/myshare "" -N -Tc
backup.tar users/docs oCreate the same tar file as above, but now use a
DOS path name. CWsmbclient //mypc/myshare "" -N -tc backup.tar users\edocs oCreate
a tar file of all the files and directories in the share. CWsmbclient //mypc/myshare
"" -N -Tc backup.tar * -D initial directoryChange to initial directory before
starting. Probably only of any use with the tar -T option. -c command stringcommand
string is a semicolon separated list of commands to be executed instead
of prompting from stdin. -N is implied by -c. This is particularly useful in
scripts and for printing stdin to the server, e.g. CW-c 'print -'. 
Operations
Once
the client is running, the user is presented with a prompt : 
CWsmb:\> 
The
backslash ("\") indicates the current working directory on the server, and
will change if the current working directory is changed. 
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. 
You can specify
file names which have spaces in them by quoting the name with double quotes,
for example "a long file name". 
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., "<parameter>") are required.

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. 
The commands available
are given here in alphabetical order. 
? [command]If "command" is specified,
the ? command will display a brief informative message about the specified
command.  If no command is specified, a list of available commands will
be displayed. ! [shell command]If "shell command" is specified, the !  command
will execute a shell locally and run the specified shell command. If no
command is specified, a local shell will be run. cd [directory name]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. If no directory name is
specified, the current working directory on the server will be reported.
del <mask>The client will request that the server attempt to delete all files
matching "mask" from the current working directory on the server. dir <mask>A
list of the files matching "mask" in the current working directory on the
server will be retrieved from the server and displayed. exitTerminate the
connection with the server and exit from the program. get <remote file name>
[local file name]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
lowercase command. help [command]See the ? command above. lcd [directory
name]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. If
no directory name is specified, the name of the current working directory
on the local machine will be reported. lowercaseToggle lowercasing of filenames
for the get and mget commands. When lowercasing is toggled ON, local filenames
are converted to lowercase when using the get and mget commands. This is
often useful when copying (say) MSDOS files from a server, because lowercase
filenames are the norm on UNIX systems. ls <mask>See the dir command above.
mask <mask>This command allows the user to set up a mask which will be used
during recursive operation of the mget and mput commands. The masks specified
to the mget and mput commands act as filters for directories rather than
files when recursion is toggled ON. The mask specified with the .B mask command
is necessary to filter files within those directories. For example, if the
mask specified in an mget command is "source*" and the mask specified with
the mask command is "*.c" and recursion is toggled ON, the mget command
will retrieve all files matching "*.c" in all directories below and including
all directories matching "source*" in the current working directory. Note
that the value for mask defaults to blank (equivalent to "*") and 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 mget or mput
commands. md <directory name>See the mkdir command. mget <mask>Copy all files
matching mask from the server to the machine running the client. Note that
mask is interpreted differently during recursive operation and non-recursive
operation - refer to the recurse and mask commands for more information.
Note that all transfers in .B smbclient are binary. See also the lowercase
command. mkdir <directory name>Create a new directory on the server (user
access privileges permitting) with the specified name. mput <mask>Copy all
files matching mask in the current working directory on the local machine
to the current working directory on the server. Note that mask is interpreted
differently during recursive operation and non-recursive operation - refer
to the recurse and mask commands for more information. Note that all transfers
in .B smbclient are binary. print <file name>Print the specified file from
the local machine through a printable service on the server. See also the
printmode command. printmode <graphics or text>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. promptToggle prompting for
filenames during operation of the mget and mput commands. When toggled ON,
the user will be prompted to confirm the transfer of each file during these
commands. When toggled OFF, all specified files will be transferred without
prompting. put <local file name> [remote file name]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 lowercase command. queueDisplays the print queue,
showing the job id, name, size and current status. quitSee the exit command.
rd <directory name>See the rmdir command. recurseToggle directory recursion
for the commands mget and mput. When toggled ON, these commands will process
all directories in the 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 mask command
will be retrieved. See also the mask command. When recursion is toggled OFF,
only files from the current working directory on the source machine that
match the mask specified to the mget or mput commands will be copied, and
any mask specified using the mask command will be ignored. rm <mask>Remove
all files matching mask from the current working directory on the server.
rmdir <directory name>Remove the specified directory (user access privileges
permitting) from the server. tar <c|x>[IXbgNa]Performs a tar operation - see
the -T command line option above. Behavior may be affected by the tarmode
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. blocksize <blocksize>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. tarmode <full|inc|reset|noreset>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). setmode <filename> <perm=[+|\-]rsha>A version of the
DOS attrib command to set file permissions. For example: CWsetmode myfile
+r would make myfile read only. 
Notes
Some servers are fussy about the case
of supplied usernames, passwords, share names (AKA service names) and machine
names. If you fail to connect try giving all parameters in uppercase. 
It
is often necessary to use the -n 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.

smbclient supports long file names where the server supports the LANMAN2
protocol or above. 
Environment Variables
The variable USER 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.

The variable PASSWD 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. 
Installation
The location of the client program
is a matter for individual system administrators. The following are thus
suggestions only. 
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 NOT be setuid or setgid! 
The client
log files should be put in a directory readable and writeable only by the
user. 
To test the client, you will need to know the name of a running SMB/CIFS
server. It is possible to run smbd (8) 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. 
Diagnostics
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. 
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. 
Version
This man page is correct for version 2.0 of the Samba suite.

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

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 ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba2.0
release by Jeremy Allison. samba@samba.org. 
See samba (7) to find out how
to get a full list of contributors and details on how to submit bug reports,
comments etc.