Samba是一套让UNIX系统能够应用Microsoft网络通讯协议的软件。它使执行UNIX系统的机器能与执行Windows系统的电脑分享驱动器与打印机。Samba属于GNU Public License(简称GPL)的软件;因此,你可以合法且免费地使用它。什么是SMB?SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft
网络的通讯协议,而Samba则是将SMB协议搬到UNIX上来应用;Samba的核心是SMB(Server Message Block)协议。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,更能与全世界的电脑分享资源;因为互联网上千千万万的主机所使用的通讯协议就是TCP/IP。SMB是在会话层(ession layer)和表(sentation layer)以及小部分应用层(applicationlayer)的协议。SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为CIFS(Common Internet File System), 并且加入了许多新的特色,而Samba亦支持了NT Lan Manager 0.12等 SMB 的延伸协议,这是得Samba具有管理NT网域的能力。
Samba 的主要功能如下:
(1)提供Windows NT风格的文件和打印机共享 Windows 95、Windows 98、Windows NT等以
据此共享UNIX等其他操作系统的资源,外表看起来和共享NT的资源没有区别。
(2)解析NetBIOS名字IP 在Windows网络中,为了能够利用网上资源,同时自己的资源也能被
别人所利用; 各个主机都定期地向网上广播自己的身份信息。而负责收集这些信息,为别
的主机;提供检索情报的服务器就被称为浏览服务器.Samba可以有效地完成这项功能在
跨越网关的时候Samba还可以作WINS服务器使用。
(3)提供SMB客户功能 利用Samba提供的smbclint程序可以从UNIX下以类似于 FTP的方式访
问Windows的资源。
(4)备份PC上的资源 利用一个叫smbtar的shell 脚本,可以使用 tar 格式备份和恢复一台
远程 Windows上的共享文件。
(5)提供一个命令行工具,在其上可以有限制地支持NT的某些管理功能。
巧配samba实现WIN2000和Linux文件共享
随着Linux的普及,如何共享Linux下的文件成为用户关心的问题。其实,几乎所有的Linux发行套件都提供了一个很好的工具Samba——通过它可以轻松实现文件共享。Samba是基于SMB协议的一个应用程序,目前的版本是2.3.x。Samba的功能很强大,但易用性也极差。原因是它的配置文件太大而且不容易理解,新手和熟手都对其望而却步。但是,如果仅仅实现文件共享这一单纯目的,配置Samba也很简单,只需熟悉几个操作即可。下面我用一个例子说明这几个操作。
假设你已熟悉Linux的基本操作,并且熟悉VI编辑器的使用。
现在我们有三台PC,一台安装了Win 2000,名字是test2000,其上有共享文件夹share;其余两台安装了Linux,一台名字是testsamba,其上有一目录
/pub;另一台名字是testlinux,其上也有一目录
/pub。我们要实现的目标是把testsamba上的
/pub共享,供test2000和test_linux使用。
对test_samba我们进行下面操作:
在/etc/下找到smb.conf,用VI编辑器打开;
# vi /etc/smb.conf或vi /etc/samba/smb.conf
在【gobal】字段下,添加netbios记录,一般加在workgroup记录的下一行;
netbios name = testsamba
在【gobal】字段下,修改secrity记录;
secrity = share
在【public】字段下,修改path记录;
path = /pub
在【public】字段下,添加geuest ok记录;
guest ok = yes
删除【public】字段每行行首的“;”标示;
保存退出。
简单解释一下,添加的“netbios name”是可以在test2000网络邻居中看得见的机器名;添加的
/pub是可以在网络邻居中看见的共享目录;添加guest ok是允许所有用户都可以guest账户访问共享;删除“;”标示是要整个【public】字段成为可执行。
现在
/pub就成为可以被test2000和testlinux两台机器共享的目录了。简单吧!
试试看:
在testsamba下,为使用test2000下的共享文件夹可以进行以下操作:
# smbclient -L //test2000
此命令可以查看test2000下的共享情况,注意在系统要求输入password时,直接回车即可进入test2000,此时屏幕上列出test2000下的共享。
#smbclient \\\\test2000\\share -U share
此命令可进入test2000的share目录,屏幕上出现MS-DOS的提示符(:\)时说明用户进入了share目录。此时可以在提示符后输入“?”命令查找你可使用的命令。
在test2000下,使用testsamba的共享目录
/pub,可以进行以下操作:
查找计算机testsamba,当testsamba目标出现时,双击图标pub,即进入共享文件夹pub了。
在testlinux下,使用testsamba的共享目录pub,可进行如下操作(假设已知pub存在):
#smbmount //testsamba/pub pub
此命令可把testsamba下的pub挂到本机的pub上,同上在系统要求输入password时,直接回车,接着依次输入#cd /pub/pub、#ls,屏幕即列出testsamba的pub目录下的文件了。