smbsh — Allows access to remote SMB shares using UNIX commands


smbsh [-W workgroup] [-U username] [-P prefix] [-R <name resolve order>] [-d <debug level>] [-l logdir] [-L libdir]


This tool is part of the samba(7) suite.

smbsh allows you to access an NT filesystem using UNIX commands such as ls, egrep, and rcp. You must use a shell that is dynamically linked in order for smbsh to work correctly.



Override the default workgroup specified in the workgroup parameter of the smb.conf(5) file for this session. This may be needed to connect to some servers.

-U username[%pass]

Sets the SMB username or username and password. If this option is not specified, the user will be prompted for both the username and the password. If %pass is not specified, the user will be prompted for the password.

-P prefix

This option allows the user to set the directory prefix for SMB access. The default value if this option is not specified is smb.

-s <configuration file>

The file specified contains the configuration details required by the server. The information in this file includes server-specific information such as what printcap file to use, as well as descriptions of all the services that the server is to provide. See smb.conf for more information. The default configuration file name is determined at compile time.


level is an integer from 0 to 10. The default value if this parameter is not specified is 0.

The higher this value, the more detail will be logged to the log files about the activities of the server. 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.

Note that specifying this parameter here will override the log level parameter in the smb.conf file.

-R <name resolve order>

This option is used to determine what naming services and in what order to resolve host names to IP addresses. The option takes a space-separated string of different name resolution options.

The options are: "lmhosts", "host", "wins" and "bcast". They cause names to be resolved as follows :

  • lmhosts: Lookup an IP address in the Samba lmhosts file. If the line in lmhosts has no name type attached to the NetBIOS name (see the lmhosts(5) for details) then any name type matches for lookup.

  • host: 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 dependent, for instance on IRIX or Solaris this may be controlled by the /etc/nsswitch.conf file). Note that this method is only used if the NetBIOS name type being queried is the 0x20 (server) name type, otherwise it is ignored.

  • wins: Query a name with the IP address listed in the wins server parameter. If no WINS server has been specified this method will be ignored.

  • bcast: Do a broadcast on each of the known local interfaces listed in the interfaces parameter. 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. 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.

-L libdir

This parameter specifies the location of the shared libraries used by smbsh. The default value is specified at compile time.


To use the smbsh command, execute smbsh from the prompt and enter the username and password that authenticates you to the machine running the Windows NT operating system.

system% smbsh
Username: user
Password: XXXXXXX

Any dynamically linked command you execute from this shell will access the /smb directory using the smb protocol. For example, the command ls /smb will show a list of workgroups. The command ls /smb/MYGROUP will show all the machines in the workgroup MYGROUP. The command ls /smb/MYGROUP/<machine-name> will show the share names for that machine. You could then, for example, use the cd command to change directories, vi to edit files, and rcp to copy files.


This man page is correct for version 3.0 of the Samba suite.


smbsh works by intercepting the standard libc calls with the dynamically loaded versions in smbwrapper.o. Not all calls have been "wrapped", so some programs may not function correctly under smbsh .

Programs which are not dynamically linked cannot make use of smbsh's functionality. Most versions of UNIX have a file command that will describe how a program was linked.


smbd(8), smb.conf(5)


The original Samba software and related utilities were created by Andrew Tridgell. 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 and updated for the Samba 2.0 release by Jeremy Allison. The conversion to DocBook for Samba 2.2 was done by Gerald Carter. The conversion to DocBook XML 4.2 for Samba 3.0 was done by Alexander Bokovoy.