我一定会说出nautilus. 因为它的功能实大强大, samba的浏览就是一个印象很深刻的功能
我记得有一次使用mount无法加载一个smbfs(其实是不知道使用什么参数, 现在也不知道), 但是nautilus简单完成了
在gentoo下, 因为为了省时间(make的时间实在太久), 一直没有使用nautilus. 近排又想出了samba的GUI browser.
除了nautilus还其实后备?
在linux下, 还有一个比较小型一点的samba browser: LinNeighborhood
使用equery depgraph查看了一下依懒, 不算多. 本想动手emerge一个, 但是又想到
1. samba常在服务器上使用.
2. 使用GUI常常会有"黑箱"的感觉, 有error不能方便在stderr中打印出现
结果还是停下手. 决定搞命令行的!
方便, 快速使用samba的share. 应该使用smbclient, 并非是mount
方便快速使用samba, 应该要:
1. smbclient使用方法
2. nbtscan对网络搜索方法
3. NetBIOS name的使用
下面反序讲述上面3种方法
nbtscan对网络搜索方法
使用GUI browser方便之一就是可以查看整个windows share网络的情况, 比较"网络邻居":在linux下, 可以使用nbtscan去搜索:
1. 得到整个网段的windows share机器列表
2. 得到NetBIOS名字
例如:
jessinio@niolaptop ~ $ nbtscan 192.168.10.0/24
Doing NBT name scan for addresses from 192.168.10.0/24
IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
192.168.10.0 Sendto failed: Permission denied
192.168.10.2 RAINLY-PC <server> <unknown> 08-00-27-2c-58-7c
192.168.10.105 NIOLAPTOP <server> NIOLAPTOP 00-00-00-00-00-00
192.168.10.106 NIOWIN <server> <unknown> 08-00-27-e9-70-63
可以看到, 在192网段有三台机器开了samba服务
nbtscan软件主页: http://www.inetcat.net/software/nbtscan.html
* 不知道是网络不稳定还是nbtscan的问题, 有时搜索的结果不一样的
* 当搜索不出时, 可能使用IP, 硬要使用NetBIOS的话, 可以:wbinfo -I 192.168.10.105 得到NetBIOS name, 但是这时需要winbindd的支持
NetBIOS name的使用
使用NetBIOS name主要是方便指定主机, 如果在smbclient中使用IP去指定机器的话, 可以不使用NetBIOS nameNetBIOS name全名NetBIOS name service, 与DNS是同一类服务!
* 关于NetBIOS name service应见: http://en.wikipedia.org/wiki/NetBIOS#Name_service
例如:
jessinio@niolaptop ~ $ ping NIOWIN
PING NIOWIN (192.168.10.106) 56(84) bytes of data.
64 bytes from 192.168.10.106: icmp_seq=1 ttl=128 time=0.514 ms
* 蓝色的NIOWIN就是使用nbtscan搜索出的NetBIOS name
使用NetBIOS name需要server和client都要有配置!
服务器端:
1. linux下: samba默认就有NetBIOS的功能. smb.conf还有N多关于NetBIOS的配置2. windows下: 需要在control pannel -> network connections的网卡配置中启用NetBIOS:
客户端:
对我而言, 客户端就是linux. 需要smbclient, ping等程序都可以使用NetBIOS name service, 需要:1. 编译samba时, 需要编译入winbind功能
2. 配置nsswitch.conf
如下是man winbindd的手册内容:
## only available on IRIX: use winbind to resolve hosts:
# hosts: files dns winbind
## All other NSS enabled systems should use libnss_wins.so like this:
hosts: files dns wins
* linux是使用wins, nss使用的库路径为:
jessinio@niolaptop /tmp $ equery files samba|grep libnss
/usr/lib/libnss_winbind.so
/usr/lib/libnss_winbind.so.2
/usr/lib/libnss_wins.so
/usr/lib/libnss_wins.so.2
所以, 只需要在/etc/nsswitch.conf中的hosts一列中加入wins就可以让程序去查询NetBIOS name service
smbclient的使用
上面一大段内容, 只是为了两点:1. 了解网段中的windows (samba) share的机器
2. 使用NetBIOS name
为使用smbclient提供了一些方便的基础. 现在需要使用smbclient去实际操作数据
列出share point:
smbclient -L //<netbios name>
得出share point后, 登陆samba空间:
jessinio@niolaptop ~ $ smbclient //NIOWIN/personal
Password:
Domain=[NIOWIN] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \>
* NIOWIN为NetBIOS name, personal为share point
smbclient为ftp操作方式, 多数操作看help可以快速学会.
有两个命令需要注意:
1. mput
2. mget
这两个命令与两个switch相关:
1. prompt: 使用mput和mget命令时, 可以使用prompt默认回答y. 一次prompt只能使用一次mput和mget!
2. recurse: 使用mput和mget命令时, 可以使用recurse去操作子目录, 否则子目录会成为一个empty文件
这两个命令是无参数的, 就是说: 单次数打开命令, 双次数为关闭命令
* prompt和recurse在使用上有点重要, 应该多试一下. 本人没有这种描述能力和文章长度不想太长太臭.不说!
smbclient还有一个-c选项, 成了no-interactive方式. happy!
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.