LinuxからWindows共有フォルダにアクセスできるコマンドラインツール
- smbclient -
本記事では、smbclientのインストール方法から基本操作、よく使うオプション、さらには使用例まで丁寧に解説しています。
検証環境での具体的な実行結果を示しながら解説しているので、すぐに活用できる内容になっています。
smbclientとは
smbclientは、SMB/CIFSプロトコルを使用してファイル共有サービスにアクセスするためのCLIツールです。
smbclientはオープンソースプロジェクトであるThe Samba Teamによって開発され、バックエンドにはSambaプロジェクトが提供するライブラリ群(libsmbclient など)が使用されています。
LinuxやUNIX環境からWindowsやSambaの共有フォルダに接続し、FTPクライアントに似た対話型インターフェースでファイルを操作することができます。(例.ls、get、putなど)
smbclientをインストール
ここでは代表的なLinuxディストリビューションであるKali LinuxおよびUbuntuにおけるインストール方法を解説します。
Kali Linuxの場合
Kali Linuxにはsmbclientがプリインストールされており、ユーザーによるインストール作業は必要ありません。smbclientはCLI(コマンドライン・インターフェース)のツールであるため、ターミナル上でコマンド実行します。
$ smbclient --usage # 例.コマンドの使い方を表示smbclientは、Kali Linuxのアプリケーションメニューから起動することもできます。
09-Discoveryの場合

12-Command and Controlの場合

09-Discovery(探索)>Network Share Discovery(ネットワーク共有検出)>smbclient
または
12-Command and Control(コマンド&コントロール)>Application Layer Protocol(アプリケーション層プロトコル)>smbclient
を選択すると、ターミナルが立ち上がり、smbclientコマンドが実行されます。

Ubuntuの場合
Ubuntuでは、smbclientは標準でインストールされていないため、ユーザー自身でインストールする必要があります。smbclientは、Ubuntu標準リポジトリで提供されているため、aptコマンドを用いてインストールします。
パッケージ情報を更新
$ sudo apt updatesmbclientパッケージを確認
$ apt info smbclient
Package: smbclient
Version: 2:4.19.5+dfsg-4ubuntu9.4
Priority: optional
Section: net
Source: samba
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Samba Maintainers <pkg-samba-maint@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2,128 kB
Provides: samba-client
Depends: samba-common (= 2:4.19.5+dfsg-4ubuntu9.4), samba-libs (= 2:4.19.5+dfsg-4ubuntu9.4), libarchive13t64 (>= 3.0.4), libc6 (>= 2.38), libgnutls30t64 (>= 3.7.0), libndr3 (>= 2:4.17.2), libpopt0 (>= 1.14), libreadline8t64 (>= 6.0), libsmbclient0 (>= 2:4.10.0+dfsg), libtalloc2 (>= 2.4.1~), libtevent0t64 (>= 0.15.0)
Suggests: cifs-utils, heimdal-clients
Homepage: https://www.samba.org
Task: samba-server, kubuntu-desktop, kubuntu-full, ubuntustudio-desktop, ubuntu-mate-core, ubuntu-mate-desktop
Download-Size: 470 kB
APT-Sources: http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
Description: command-line SMB/CIFS clients for Unix
Samba is an implementation of the SMB/CIFS protocol for Unix systems,
providing support for cross-platform file and printer sharing with
Microsoft Windows, OS X, and other Unix systems.
.
This package contains command-line utilities for accessing Microsoft
Windows and Samba servers, including smbclient, smbtar, and smbspool.
Utilities for mounting shares locally are found in the package
cifs-utils.
N: There is 1 additional record. Please use the '-a' switch to see itsmbclientをインストール
$ sudo apt install smbclientインストール後、次のコマンドで動作確認を行います。
実行ファイルの場所を確認
$ which smbclient
/usr/bin/smbclientバージョン確認
$ smbclient -V
Version 4.19.5-Ubuntusmbclientコマンドの使い方
基本的な使い方
$ smbclient //<ターゲットホスト>/<共有名> -U <ユーザー名>ターゲットホストは、NetBIOS名、サーバー名、IPアドレスのいずれかで指定します。
例えば、ユーザーjohnで10.0.0.5上の共有フォルダpublicにアクセスする場合、以下のコマンドを実行します。
$ smbclient //10.0.0.5/public -U johnパスワード認証に成功するとプロンプトsmb: >が表示され、FTPに似た操作(ls, get, put, cd, mkdir など)が可能になります。
smb: \> ls # ファイル一覧
smb: \> get <ファイル名> # ファイルをダウンロード
smb: \> put <ファイル名> # ファイルをアップロード
smb: \> exit # 終了ヘルプコマンド
$ smbclient -? # ヘルプ(--helpでも可)
$ smbclient --usage # 使い方
$ man smbclient # マニュアルバージョンコマンド
$ smbclient -V # --versionでも可主要オプション一覧
接続・認証に関するオプション
| オプション | 説明 |
|---|---|
| -U <ユーザー名> -U <ユーザー名%パスワード> | 接続するユーザー名 |
| -N | 認証なしで接続(パスワードを要求しない) |
| -A <認証ファイル> | 認証情報をファイルから読み込む 例) username = <value> password = <value> |
| -I <IPアドレス> | 接続先をIPアドレスで指定 |
SMB通信に関するオプション
| オプション | 説明 |
|---|---|
| -p <ポート番号> | TCPポートを指定(非標準ポートで動作している場合) ※デフォルト:139 |
| -m <最大バージョン> | SMBプロトコルの最大バージョン 例:NT1(SMB1)、SMB2、SMB3 |
| --option='client min protocol=<最小バージョン>' | SMBプロトコルの最小バージョン 例:NT1(SMB1)、SMB2、SMB3 |
操作系のオプション
| オプション | 説明 |
|---|---|
| -L <ホスト> | 共有リソースを一覧表示 |
| -c <コマンド> | 非対話モードでsmbclientの内部コマンドを実行(複数コマンドの場合、; 区切り) |
その他のオプション
| オプション | 説明 |
|---|---|
| -? --help | ヘルプを表示 |
| --usage | 使い方の概要を表示 |
| -V | バージョンを表示 |
| -s <設定ファイル> | 設定ファイルを指定(デフォルト:/etc/samba/smb.conf) |
| -d <デバッグレベル> | デバッグレベルを指定(例:0〜10、デフォルト:1) |
よく使うコマンド一覧
共有リソースを一覧表示
$ smbclient -L 10.0.0.5-L:共有リソースを一覧表示する
共有フォルダに接続
$ smbclient //10.0.0.5/share -U userパスワード認証に成功するとプロンプトsmb: \>が表示されます。
smb: \>認証情報をファイルで指定する
$ cat credential.txt
username = <ユーザー名>
password = <パスワード>
$ smbclient //10.0.0.5/share -A ./credential.txt-A:認証ファイルを指定
匿名アクセス(認証なし)
# 共有リソースを一覧表示
$ smbclient -L 10.0.0.5 -N
# 共有フォルダに接続
$ smbclient //10.0.0.5/share -N-N:匿名アクセス(認証しない)
匿名アクセスが許可されている環境の場合、パスワードなしで接続できます。
接続先をIPアドレスで指定
$ smbclient //HOST/share -I 10.0.0.5 -U user-I:接続先IPアドレス
ホスト名HOSTの代わりに、-Iオプションで指定したIPアドレス10.0.0.5に接続します。
非対話モードで内部コマンドを実行
$ smbclient //10.0.0.5/share -U user -c "ls; get secret.txt; exit;"-c:smbclient内部コマンド
内部コマンドを複数指定する場合は、セミコロン;で区切ります。
共有フォルダ接続後に使う内部コマンド
smbclientはFTPクライアントのような操作感で、SMBサーバーに対してファイルの一覧表示、アップロード、ダウンロード、削除などが可能です。
内部コマンド一覧
?コマンド、またはhelpコマンドにて、使用できる内部コマンドを確認することができます。
smb: \> ?
? allinfo altname archive backup
blocksize cancel case_sensitive cd chmod
chown close del deltree dir
du echo exit get getfacl
geteas hardlink help history iosize
lcd link lock lowercase ls
l mask md mget mkdir
mkfifo more mput newer notify
open posix posix_encrypt posix_open posix_mkdir
posix_rmdir posix_unlink posix_whoami print prompt
put pwd q queue quit
readlink rd recurse reget rename
reput rm rmdir showacls setea
setmode scopy stat symlink tar
tarmode timeout translate unlock volume
vuid wdel logon listconnect showconnect
tcon tdis tid utimes logoff
.. !よく使う内部コマンド
ls,dir:ファイル一覧を表示get ファイル名:ファイルをダウンロードput ファイル名:ファイルをアップロードcd ディレクトリ: ディレクトリを移動exit,quit,q: 終了
内部コマンドの詳細は、? 内部コマンドまたはhelp 内部コマンドで確認できます。
smb: \> ? ls
HELP ls:
<mask> list the contents of the current directory【実演解説】smbclientコマンドの使用例
smbclientの使用例について、具体的なコマンドと実行結果を交えて解説します。
検証環境
| smbclient実行マシン | Kali Linux 2025.3 192.168.10.11 smbclient 4.23.1-Debian-4.23.1+dfsg-1 |
| Sambaサーバー | Ubuntu Server 24.04.3 LTS 192.168.10.102 Samba 4.19.5-Ubuntu |
※smbclient実行マシン、およびSambaサーバーは、ローカル環境に構築した仮想マシンとして稼働しています。
SMBポートを確認する
$ nmap 192.168.10.102
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-30 16:04 JST
Nmap scan report for 192.168.10.102
Host is up (0.00014s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 08:00:27:49:5C:47 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds対象サーバーにポートスキャンを実行し、デフォルトのSMBポート(139、445)が開いていることを確認できます。

共有リソースを列挙
$ smbclient -L 192.168.10.102 -N
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
public Disk
private Disk
IPC$ IPC IPC Service (ubuntu server (Samba, Ubuntu))-L:共有リソースを一覧表示192.168.10.102:対象サーバーのIPアドレス-N:パスワードを入力せずに匿名で接続
以降では、publicフォルダとprivateフォルダについて調べます。
共有フォルダにアクセス
匿名アクセス
# publicフォルダに匿名アクセス(成功)
$ smbclient //192.168.10.102/public -N
Try "help" to get a list of possible commands.
smb: \>
# privateフォルダに匿名アクセス(失敗)
$ smbclient //192.168.10.102/private -N
tree connect failed: NT_STATUS_ACCESS_DENIEDpublicフォルダは匿名アクセスに成功しました。一方、privateフォルダは匿名アクセスに失敗したため、認証アクセスを試みます。
認証アクセス
$ smbclient //192.168.10.102/private -U user1
Password for [WORKGROUP\user1]:
Try "help" to get a list of possible commands.
smb: \>ユーザー名/パスワードを使って、privateフォルダにアクセスします。
ファイル一覧を確認
smb: \> ls
. D 0 Thu Oct 30 16:29:40 2025
.. D 0 Thu Oct 30 16:29:40 2025
dayly.log N 17 Thu Oct 30 16:29:40 2025
data D 0 Thu Oct 30 16:29:05 2025
sample.xml A 2487 Wed Oct 29 14:54:22 2025
11758760 blocks of size 1024. 5647456 blocks available
smb: \> cd data
smb: \data\> ls
. D 0 Thu Oct 30 16:29:05 2025
.. D 0 Thu Oct 30 16:29:40 2025
secret.txt N 41 Thu Oct 30 16:29:05 2025
11758760 blocks of size 1024. 5647456 blocks availabledataフォルダの中にsecret.txtというファイルを見つけました。
ファイルをダウンロード
smb: \data\> get secret.txt
getting file \data\secret.txt of size 41 as secret.txt (10.0 KiloBytes/sec) (average 10.0 KiloBytes/sec)getコマンドを使って、対象ファイルをローカルディスクにダウンロードします。
ログオフ
smb: \> quitダウンロードしたファイルを確認
$ ls -l secret.txt
-rw-r--r-- 1 kali kali 41 10月 30 16:30 secret.txt
$ cat secret.txt
〜 省略 〜