SMBCLIENT(1)

SMBCLIENT(1)

slrn Home Page User Commands Index smbrun


NAME
       smbclient - ftp-like Lan Manager client program

SYNOPSIS
       smbclient servicename [ password ] [ -E ] [ -L host ] [ -M
       host ] [ -I IP number ] [ -R name resolve order ] [ -N ] [
       -P ] [ -U username ] [ -d debuglevel ] [ -l log basename ]
       [ -n netbios name ] [ -W workgroup ] [ -O socket options ]
       [  -p port number ] [ -c command string ] [ -T tar options
       ] [ -D initial directory ]

DESCRIPTION
       This program is part of the Samba suite.

       smbclient is a client that can 'talk'  to  a  Lan  Manager
       server.  It offers an interface similar to that of the ftp
       program (see ftp(1)).  Operations include things like get-
       ting  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
       servicename
          servicename  is the name of the service you want to use
          on  the  server.  A  service  name   takes   the   form
          \\server\service  where  server  is the netbios name of
          the Lan Manager server offering the desired service and
          service  is  the  name  of the service offered. Thus to
          connect to the service "printer"  on  the  Lan  Manager
          server "lanman", you would use the servicename
                    \\lanman\printer

          Note  that  the server name required is NOT necessarily
          the host name of the server! The name required is a Lan
          Manager  server  name, which may or may not be the same
          as the hostname of the machine running the server.

          With Samba  1.9.18p4  the  server  name  is  looked  up
          according to 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.

       password
          password is the password required to access the  speci-
          fied  service on the specified server. If supplied, the
          -N option (suppress password prompt) is assumed.

          There is no default password. If no  password  is  sup-
          plied  on the command line (either here or using the -U
          option (see below)) and -N is not specified, the client
          will prompt for a password, even if the desired service
          does not require one. (If no password is required, sim-
          ply 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.

       -R name resolve order

          This parameter will override the default  name  resolu-
          tion  order  of  the server listed in the "name resolve
          order" parameter in smb.conf. This is useful  to  force
          name  resolution  to take place by a particular method.
          This  command  line  parameter  only  exists  in  Samba
          1.9.18p4 and above.

       -L

          This  option  allows  you  to look at what services are
          available on a server. You  use  it  as  "smbclient  -L
          host"  and  a list should appear.  The -I option may be
          useful if your netbios names don't  match  your  tcp/ip
          host  names  or  if  you  are trying to reach a host on
          another network. For example:

          smbclient -L ftp -I ftp.microsoft.com

          will list the shares available  on  Microsoft's  public
          server.

       -M

          This  options  allows  you  to send messages, using the
          "WinPopup" protocol, to another computer. Once  a  con-
          nection  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 mes-
          sage is over 1600 bytes, as this is the  limit  of  the
          protocol.

          One  useful  trick  is  to cat the message through smb-
          client.  For example:

          cat 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  mes-
          sage.

          See  the  message  command section of 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  mes-
          sages.

       -E

          This  parameter,  if  specified,  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 out-
          put - typically the user's tty.

       -I IP number

          IP number represents the IP number  of  the  server  to
          connect   to.   It  should  be  specified  in  standard
          "a.b.c.d" notation.

          Normally the client will attempt to locate  the  speci-
          fied  Lan  Manager  server  by looking it up - that is,
          broadcasting a request for the given server to identify
          itself.  Using  this parameter will force the client to
          assume that the server is on the machine with the spec-
          ified IP number.

          There  is  no  default  for this parameter. If not sup-
          plied, it  will  be  determined  automatically  by  the
          client as described above.

       -N

          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.

          Unless a password is specified on the command  line  or
          this  parameter is specified, the client will request a
          password.

       -O socket options

          See the  socket  options  section  of  smb.conf(5)  for
          details.

       -P

          If  specified,  the service requested will be connected
          to as  a  printer  service  rather  than  as  a  normal
          filespace  service. Operations such as put and get will
          not be applicable for such a connection.

          By default, services  will  be  connected  to  as  NON-
          printer services.

       -U username

          username  is  the  user  name  that will be used by the
          client to make a connection, assuming  your  server  is
          running a protocol that allows for 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 USER or
          LOGNAME in that order.  If no username is supplied  and
          neither  environment variable exists the user name will
          be empty.

          If the USER environment variable containts a '%'  char-
          acter, everything after that will be treated as a pass-
          word. This allows you to set the  environment  variable
          to  be USER=username%password so that a password is not
          passed on the command line (where it may be seen by the
          ps command).

          If  the  service you are connecting to requires a pass-
          word, 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
          "fred"  with  password  "secret",  you would specify -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.

          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.

       -d debuglevel

          debuglevel  is  an  integer  from 0 to 5, 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 the debuglevel is set to 'A' then the debug level is
          set  to the maximum value possible (it stands for debug
          'all').

       -l log basename

          If specified, log basename 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 following files would be used for log data:

             log.client.debug (containing debugging information)

             log.client.in (containing inbound transaction data)

             log.client.out  (containing   outbound   transaction
             data)

          The  log  files  generated  are  never  removed  by the
          client.

       -n netbios name

          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.

       -W workgroup

          Override  what  workgroup  is  used for the connection.
          This may be needed to connect to some servers.

       -p port number

          port number is a positive integer value.

          The default value if this parameter is not specified is
          139.

          This  number  is the port number that will be used when
          making connections to the server. The  standard  (well-
          known)  port  number  for  the server is 139, hence the
          default.

          This parameter is not normally specified.

       -T tar options

          where tar options consists of one or more of c,  x,  I,
          X, b, g, N or a; used as:

          smbclient  \\server\share  -TcxIXbgNa  [  blocksize ] [
          newer-file ] tarfile [ filenames....  ]

             c Create a tar file on UNIX. Must be followed by the
             name  of a tar file, tape device or "-" for standard
             output. (May be useful to set debugging  low  (-d0))
             to  avoid  corrupting  your  tar file if using "-").
             Mutually exclusive with the x flag.

             x Extract (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 "-" for standard input. Mutually  exclusive  with
             the c flag.

             I  Include  files  and  directories.  Is the default
             behaviour 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 does not work for
             included files for extractions (yet).

             X Exclude files and directories. Causes tar files to
             be  excluded  from an extract or create. See example
             below.  Filename globbing does not work for excluded
             files (yet).

             b  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.

             g  Incremental.  Only  back  up  files that have the
             archive bit set. Useful only with the c flag.

             N 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 c flag.

             a Set archive bit. Causes  the  archive  bit  to  be
             reset  when  a  file is backed up. Useful with the g
             (and c) flags.

             Examples

             smbclient \\mypc\myshare "" -N -Tx backup.tar

             Restore from tar file  backup.tar  into  myshare  on
             mypc (no password on share).

             smbclient   \\mypc\myshare  ""  -N  -TXx  backup.tar
             users/docs

             Restore everything except users/docs

             smbclient  \\mypc\myshare  ""  -N   -Tc   backup.tar
             users/docs

             Create a tar file of the files beneath users/docs.

       -D initial directory

          Change  to  initial directory before starting. Probably
          only of any use with the tar (-T) option.

       -c command string

          command string is a semicolon separated  list  of  com-
          mands  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. -c 'print -'.

OPERATIONS
       Once  the  client is running, the user is presented with a
       prompt, "smb: \>".  The backslash ("\") indicates the cur-
       rent  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  (eg.,  "[parameter]")
       are  optional. If not given, the command will use suitable
       defaults.  Parameters  shown  in  angle   brackets   (eg.,
       "<parameter>") are required.

       Note  that  all commands operating on the server are actu-
       ally performed by issuing a request to  the  server.  Thus
       the behaviour may vary from server to server, depending on
       how the server was implemented.

       The commands available  are  given  here  in  alphabetical
       order.

       ?
          Parameters:
             [command]

          Description:
             If command is specified, the ?  command will display
             a brief informative message about the specified com-
             mand.

             If no command is specified, a list of available com-
             mands will be displayed.

       !
          Parameters:
             [shell command]

          Description:
             If shell command is specified, the !   command  will
             execute  a shell locally and run the specified shell
             command. If no command is specified, a shell will be
             run.

       cd
          Parameters:
             [directory name]

          Description:
             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 work-
             ing directory on the server will be reported.

       del
          Parameters:
             &lt;mask>

          Description:
             The client will request that the server  attempt  to
             delete  all  files  matching  mask  from the current
             working directory on the server.

       dir
          Parameters:
             &lt;mask>

          Description:
             A list of the files matching  mask  in  the  current
             working  directory  on  the server will be retrieved
             from the server and displayed.

       exit
          Parameters:
             None.

          Description:
             Terminate the connection with the  server  and  exit
             from the program.

       get
          Parameters:
             &lt;remote file name> [local file name]

          Description:
             Copy  the  file  called  remote  file  name from the
             server to the machine running the client. If  speci-
             fied,  name  the  local  copy local file name.  Note
             that all transfers in smbclient are binary. See also
             the lowercase command.

       help
          Parameters:
             [command]

          Description:
             See the ?  command above.

       lcd
          Parameters:
             [directory name]

          Description:
             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 inaccessi-
             ble.

             If  no  directory name is specified, the name of the
             current working directory on the local machine  will
             be reported.

       lowercase
          Parameters:
             None.

          Description:
             Toggle 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 file-
             names are the norm on UNIX systems.

       ls
          Parameters:
             &lt;mask>

          Description:
             See the dir command above.

       mask
          Parameters:
             &lt;mask>

          Description:
             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 mask command  is  neces-
             sary  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 com-
             mand 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  mask  back to "*" after using the mget or
             mput commands.

       md
          Parameters:
             &lt;directory name>

          Description:
             See the mkdir command.

       mget
          Parameters:
             &lt;mask>

          Description:
             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  smbclient
             are binary. See also the lowercase command.

       mkdir
          Parameters:
             &lt;directory name>

          Description:
             Create  a  new  directory on the server (user access
             privileges permitting) with the specified name.

       mput
          Parameters:
             &lt;mask>

          Description:
             Copy all files matching mask in the current  working
             directory  on the local machine to the current work-
             ing 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 smbclient
             are binary.

       print
          Parameters:

             &lt;file name>

          Description:
             Print the specified  file  from  the  local  machine
             through a printable service on the server.

             See also the printmode command.

       printmode
          Parameters:
             &lt;graphics or text>

          Description:
             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.

       prompt
          Parameters:
             None.

          Description:
             Toggle  prompting  for filenames during operation of
             the mget and mput commands.

             When toggled ON, the user will be prompted  to  con-
             firm  the  transfer  of  each file during these com-
             mands. When toggled OFF, all specified files will be
             transferred without prompting.

       put
          Parameters:
             &lt;local file name> [remote file name]

          Description:
             Copy  the  file  called  local  file  name  from the
             machine running the client to the server. If  speci-
             fied,  name  the remote copy remote file name.  Note
             that all transfers in smbclient are binary. See also
             the lowercase command.

       queue
          Parameters:
             None.

          Description:
             Displays  the print queue, showing the job id, name,
             size and current status.

       quit
          Parameters:
             None.

          Description:

             See the exit command.

       rd
          Parameters:
             &lt;directory name>

          Description:
             See the rmdir command.

       recurse
          Parameters:
             None.

          Description:
             Toggle 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 from) and will recurse
             into any that match the mask specified to  the  com-
             mand. 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 com-
             mands will be copied, and any mask  specified  using
             the mask command will be ignored.

       rm
          Parameters:
             &lt;mask>

          Description:
             Remove  all  files  matching  mask  from the current
             working directory on the server.

       rmdir
          Parameters:
             &lt;directory name>

          Description:
             Remove the specified directory (user  access  privi-
             leges permitting) from the server.

       tar
          Parameters:
             &lt;c|x>[IXbgNa]

          Description:
             Performs  a  tar operation - see the -T command line
             option above.  Behaviour  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
          Parameters
             &lt;blocksize>

          Description
             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
          Parameters
             &lt;full|inc|reset|noreset>

          Description
             Changes tar's behaviour 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
          Parameters
             &lt;filename> &lt;perm=[+|-]rsha>

          Description
             A version of the DOS attrib command to set file per-
             missions. For example,

             setmode myfile +r

             would make myfile read only.

NOTES
       Some  servers  are  fussy about the case of supplied user-
       names, 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 sup-
       ports the LANMAN2 protocol.

FILES
       Not applicable.

ENVIRONMENT VARIABLES
       USER
          The variable USER may contain the username of the  per-
          son 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 indi-
       vidual system administrators. The following are thus  sug-
       gestions only.

       It  is  recommended  that the client software be installed
       under the /usr/local/samba hierarchy, in a directory read-
       able  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 writable only by the user.

       To test the client, you will need to know the  name  of  a
       running  Lan  manager  server.  It is possible to run smbd
       (see smbd(8)) as 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.

VERSION
       This man page is (mostly) correct for  version  1.9.00  of
       the  Samba  suite,  plus some of the recent patches to it.
       These notes will necessarily lag behind development of the
       client  software,  so  it is possible that your version of
       the client has extensions or parameter semantics that dif-
       fer  from  or  are  not  covered  by this man page. Please
       notify these to the address below for rectification.

SEE ALSO
       smbd(8) 

DIAGNOSTICS
       [This section under construction]

       Most diagnostics issued by the  client  are  logged  in  a
       specified log file. The log file name is specified at com-
       pile 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.

       Most    messages    are    reasonably    self-explanatory.

       Unfortunately,  at  time  of creation of this man page the
       source code is still too fluid to warrant describing  each
       and every diagnostic. At this stage your best bet is still
       to grep the source code and inspect  the  conditions  that
       gave rise to the diagnostics you are seeing.

BUGS
       None known.

CREDITS
       The  original  Samba  software  and related utilities were
       created by Andrew Tridgell  samba-bugs@samba.anu.edu.au.
       Andrew  is also the Keeper of the Source for this project.

       See smb.conf(5)  for  a  full  list  of  contributors  and
       details on how to submit bug reports, comments etc.

slrn Home Page User Commands Index smbrun