smbclient is a command-line tool that allows you to interact with SMB (Server Message Block) file shares. Whether you’re uploading files, listing directories, or troubleshooting network shares, this tool is your go-to for SMB.

Basic Usage

To connect to an SMB file share, use the following syntax:

smbclient //server/share [options]
  • Replace server with the hostname or IP address of the server hosting the file share.
  • Replace share with the name of the file share.

Once connected, you will be prompted for credentials. After successful authentication, a command prompt will allow you to interact with the share.

Common Options

  • -U <username>: Specify the username to use for authentication.
  • -W <workgroup>: Specify the domain or workgroup.
  • -I <IP address>: Directly specify the server’s IP address.
  • -p <port>: Specify the port (default is 445).
  • -d <debug level>: Set the debug level for verbose output.
  • -N: Suppress the password prompt (useful for guest accounts).

Available Commands

Once connected, the following commands allow you to interact with the file share:

  • ls: List files and directories in the current directory.
  • cd <directory>: Change to a different directory.
  • pwd: Print the current working directory.
  • put <file>: Upload a file to the share.
  • get <file>: Download a file from the share.
  • mput <files>: Upload multiple files.
  • mget <files>: Download multiple files.
  • rm <file>: Delete a file.
  • mkdir <directory>: Create a new directory.
  • rmdir <directory>: Remove a directory.
  • exit: Disconnect from the share and exit smbclient.

Examples

List Files in a Share

smbclient //server/share -c ls

Connect with a Specific Username and Password

smbclient //server/share -U username%password

Connect Using an IP Address and Port

smbclient //server/share -I 192.168.1.100 -p 139

Upload a File

smbclient //server/share -c "put /path/to/local/file"

Download a File

smbclient //server/share -c "get /path/to/remote/file"

Create a New Directory

smbclient //server/share -c "mkdir newdirectory"

When to Use smbclient

  • Quick Access: Need to interact with a file share without mounting it? smbclient gives you immediate access.
  • Testing Permissions: Check which directories and files are accessible under different credentials.
  • File Operations: Download, upload, or manage files on SMB shares.
  • Debugging: Troubleshoot network shares with verbose output using -d.