スポンサーサイト
投稿日時 : -------- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- --:-- | スポンサー広告
[Ubuntu] smbclient使用詳細メモ
投稿日時 : 2007-12-04 13:43
smbclientの使い方自体は難しいわけではないけどWindowsがおかしな挙動をするおかげでちょっとはまったのでそのあたりを使い方と合わせてメモ。
 
■環境
以下の環境で実行している。
環境
[ネットワーク環境]
mv1c3e(Ubuntu Linux)    192.168.0.3/24
c610(WindowsXP)         192.168.0.2/24

[Windowsのユーザ]
itmst  パスワード設定なし
itmst2 パスワード設定あり

[Windowsのワークグループ名]
WORKGROUP

[Windowsの共有フォルダ]
D:\desktop
D:\
Z:\

[共有フォルダのアクセス制限]
デフォルトで許可ユーザとして「Everyone」が指定されている。
 
Ubuntu7.10に標準インストールされているSamba関連パッケージ
samba-common   サーバ・クライアントともに必要とする基本パッケージ
smbclient       CUIクライアント
libsmbclient    他のアプリケーション用共有ライブラリ
これだけ入っていればとりあえずsmbclientでWindowsの共有フォルダにはアクセスできる。
 
■設定
Windowsのワークグループの設定をする。Windows側に合わせて「WORKGROUP」というワークグループ名に変更。
/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
 
■Windows側で公開されている共有フォルダを確認
以下のコマンドで公開されているフォルダを確認する。
書式
$ smbclient -L <コンピュータ名 or IPアドレス> -U <ユーザ名>
 
共有フォルダを確認
itmst@mv1c3e:~$ smbclient -L c610 -U itmst
Password: 
Domain=[C610] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       Remote IPC
        D$              Disk      Default share
        D               Disk      
        Z$              Disk      Default share
        Z               Disk      
        desktop         Disk      
        ADMIN$          Disk      Remote Admin
        C$              Disk      Default share
Domain=[C610] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
-Lオプションで公開フォルダの一覧を取得、-UオプションでWindowsのユーザ名を指定。 パスワードを求められるが、Windows側のitmstにはパスワードが設定されていないので何も入力せずにEnterでOK。ユーザ名を指定しなかった場合は、
smbclientコマンド:ITpro
このオプションを指定しない場合は環境変数「USER」と「LOGNAME」を順番に調べて,その設定をユーザー名として指定する。環境変数もない場合はユーザー名としてGUESTを使う。
ということなので、Linux側のユーザ名とWindows側のユーザ名を統一しておけば楽だしわかりやすい。
 
Default share
Sharenameが「desktop」「D」「Z」となっているものがWindows側で手動で共有設定したフォルダ。「C$」「D$」「Z$」はコメントにある通り「Default share」でドライブのルートが自動的に公開されているもの。このフォルダにアクセスするには、Windows側でユーザとして登録されており、かつパスワードが設定されていなければならない。これを知らなくて少しはまった。

 
謎の仕様1
もしここで-Uオプションでパスワード設定がされているitmst2を指定した場合は、正しいパスワードを入力しなければログオンに失敗する。 ここまでは当たり前のことだが、適当なユーザ名、例えばhogeを指定した場合、パスワードは入力しなくても、適当に入力してもログオンできてしまう。つまり正規ユーザであってもパスワードを忘れると不正規ユーザよりもログオンが難しくなってしまう。なんだ?この仕様。
 
■Windowsの共有フォルダにsmbclientで接続する
書式
$ smbclient //<コンピュータ名 or IPアドレス>/<共有名> -U <ユーザ名>
 
itmst@mv1c3e:~$ smbclient //c610/D -U itmst
Password: 
Domain=[C610] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
  desktop                         D        0  Tue Dec  4 12:25:28 2007
  down                            D        0  Mon Nov 26 13:14:33 2007
  md5.bak.js                      A    10353  Wed Oct 31 12:01:44 2007
  md5_cscript.js                  A    10794  Wed Oct 31 13:32:44 2007
  MyProgram                       D        0  Mon Sep 17 14:09:40 2007
  VMware                          D        0  Sat Nov 17 12:18:43 2007
  wallpaper                       D        0  Sat Nov 10 10:15:02 2007

                46186 blocks of size 524288. 16414 blocks available
謎の仕様2
やはりここでもUオプションでパスワード設定がされているitmst2を指定した場合は正しいパスワードを入力しなければログオンに失敗する。
itmst@mv1c3e:~$ smbclient //c610/D -U itmst2
Password: ←わざと間違ったパスワードを入力
session setup failed: NT_STATUS_LOGON_FAILURE
にもかかわらず、適当なユーザ名とパスワードを入力するとログオンできる。
itmst@mv1c3e:~$ smbclient //c610/D -U hoge
Password: ←適当なパスワードを入力
Domain=[C610] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
  desktop                      D        0  Tue Dec  4 12:25:28 2007
  down                         D        0  Mon Nov 26 13:14:33 2007
(省略)
別にセキュリティホールとかなわけじゃないけどなんか気持ち悪い。
 
■ログオン後の操作
ログオンした後の操作はlsで一覧、cdでディレクトリ移動、getでファイルダウンロード、putでアップロードなどFTPコマンドとほぼ同じ。スペースを含むパスの場合は「"」(ダブルクォーテーション)で囲む必要がある。
 
smbclientコマンド:ITproの「対話型モードでの利用」の項を参照。
 
 
[参考]
Sambaの設定 | LIVE FREE OR DIE.
 
スポンサーサイト
2007-12-04 13:43 | Linux | Comment(0) | Trackback(0)
Comment
コメントを書く
#

管理者にだけ表示
Trackback
Trackbak URL:http://itmst.blog71.fc2.com/tb.php/27-6ceab91a
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。