荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: zzt (少年仲永), 信区: Linux
标  题: Samba 介绍
发信站: BBS 荔园晨风站 (Wed Apr  7 16:24:35 1999), 转信

Samba 介绍

编译:许驰[BJLC]

网络出现的全部意义便在于使计算机更容易的实现信息共享。一台linux主机若要同
其它linux主机或是unix主机实现信息共享,有很多方便的、成熟的工具如FTP或NFS
等等。但是,即使是再狂热的linux的支持者也要承认,在世界上大多数pc机上运行的
是windows家族的一种。除非你多数情
况下要在一个相对封闭的环境中使用linux,否则你必须以某种方式与运行windows系
列的pc共享信息。如果你不打算使用软盘同那些运行windows系列的pc交换信息,那
麽你所需要的工具便是—samba.

Samba是一组程序,可以使你的linux具备理解SMB协议(server message block)的
能力。SMB协议是一种在os/2、windowsNT、windows95和windows for workgroups等w
indows 系列中广泛使用的协议,该协议主要用来实现文件和打印机共享。该协议可
以类比于NFS(network file
system)、lpd(标准的unix打印机服务进程) 和分布式认证系统如NIS或Kerberos的
组合体。如果你对Netatalk比较熟悉,samba之于windows如同Netatalk之于Macintos
h.当运行samba服务器应用时,你的linux将会出现在“Network
Neighborhood”(网络邻居)中如同其它windows机器一样。Windows用户可以”login

into”(登录)至你的linux机器并且以你赋与他们的权限与unix文件系统进行双向
的交流,还可以向linux打印机提交作业,甚至向你的linux发送winpopup消息。若你
在一个大部分都是由windowsNT和windows95组成的网络环境中使用linux,那麽samba
将会是一个无价之宝。



图1. “Network Neighborhood”(网络邻居)中显示samba服务器



Samba还可以完成一些通常需要windowsNT服务器来做的工作,如做WINS服务器或为w
indows95客户机提供“network logons”
服务。源自samba的PAM模块可以使你用windowsNT来进行unix登录身份验证。一个正
在开展的samba项目力图在samba中嵌入windowsNT的域控制器协议并使它成为samba的
一部分。这些代码尽管还在试验阶段,但已经可以成功的处理来自windowsNT
workstation的登录请求。不久以后,samba可以全方位的作为主域控制器(PDC),
储存用户登录信息并同其它的windowsNT域建立信任关系。最重要的是,samba同linu
x一样遵循GPL版权声明。在许多环境下,只要求windowsNT服务器提供文件服务、打
印服务和经行windows95客户机的访问?
刂啤inux和samba组合提供了一套高性/价比的实现这种典型应用的解决方案。



Windows网络

如果你对windows网络有所了解,那将有助于你对samba工作机制的理解。Windows客
户机通过在NetBIOS协议上传送“server message
block”来实现文件和打印机共享。NetBIOS协议最早是由IBM发展起来的一套用于支
持在MS-DOS和PC-DOS上运行网络应用的网络界面。它定义了一组网络服务和访问这些
网络服务的界面,但是并没有规定了支持NetBIOS的底层协议。

伴随着NetBIOS,出现了三个变种。这三个变种主要区别在传输层协议的不同。最早
出现的是NetBEUI(NetBIOS Extended User Interface),其传输层协议是为单段网
设计的。Novell开发IPX协议上的NetBIOS也很流行。而samba使用TCP/IP做为传输层
协议有很多优点。

由于TCP/IP已被广泛的植入很多系统,所以samba可以方便的移植到很多系统如:各
种unix的衍生系统、os/2、



VMS、AmigaOS、apple的Rhapsody(或是NextSTEP)和大型机如CMS等等。Samba还应用
于各种嵌入式系统如stand-alone 打印机或是Whistle’s InterJet Internet
applicance。应用TCP/IP意味着samba可以很好的同TCP/IP网络如Internet协作。正
因为这些,Mircosoft重新命名应用TCP/IP协议的 SMB和NetBIOS为CIFS(Common Int
ernet Filesystem)。Mircosoft正执力于使CIFS作为文件传输的国际标准。



图2.SMB的网络层次之于OSI网络层次



Samba组成

一个samba服务器实际上包含了两个服务器程序:smbd和nmbd。Smbd是samba的核心
。它负责建立对话进程、验证用户身份、提供对文件系统和打印机的访问机制。Nmbd
实现了“network
brower”(网络浏览服务器)的功能。它的作用是对外发布samba服务器可以提供的
服务。Nmbd可以使samba服务器出现在windows95或windowsNT的“Network
Neighborhood”(网络邻居)中并且可以客户机浏览到可以访问的资源。完全可以不
运行nmbd而起动samba服务器进程,但是也许客户除了想看到samba服务器的NetBIOS名
外,还想看到samba服务器可以提供的服务。Nmbd嵌入了microsoft的network brower

protocol(网络浏览服务器协议),这意味着它可以使samba服务器参与网络浏览服务
器选择竞争(有时叫“brower wars”),并可以作为一台主或备份的浏览服务器。N
mbd 也可以作为一台WINS(Windows Internet Name Service)服务器, WINS服务器
可以使你跨TCP/IP网段浏览主机。

Samba还包含了一些实用工具。Smbclient
是一个SMB客户工具,有shell-based用户界面并同FTP有些类似。应用它可以使你复
制从/至其它的SMB服务器,还可以使你访问其它SMB服务器提供的打印机资源或发送w
inpopup消息。对于linux用户,samba还提供了一个SMB文件系统可以使你直接安装一
个共享的windows文件目录至你的linu
x文件系统下。Smtar 是一个shell脚本可以使你方便的对远程的windows文件系统作
备份。

Testparm命令用来快速检查你的smb.conf文件的语法错误。其它工具用来配置samba
的加密口令文件、配置用于samba国际化的字符集和侦错。



Samba配置

在samba-1.9.18之前若要使用加密口令验证的话,你必须自己手工编译samba。这是
由于samba使用DES加密库实现加密功能。该加密库属美国政府的技术分类受限品。带
加密功能的samba二进制版本属美国政府的限制出口级软件,这使得samba的镜相站点
也必免发布带加密功能的samba二进制
版本。从samba-1.9.18开始,samba使用了一个不触犯出口限制的、修改过的DES算
法。那麽除非你想测试最新版本或加入一些非标准的功能,你是没有必要自己手工编?
雜amba。

由于SMB是一个非常复杂的协议,所以配置samba是十分繁复的,大约有超过170条配
置项出现在smb.conf文件中。在RedHat和Debian中Smb.conf文件缺省位置是在/etc/
下,所有的samba程序都要参照这个配置文件。其结构十分类似windows的*.ini文件。
文件中的每一节都由一个被方括号括?
鹄吹谋晔犊迹纾篬global]、[home]和[printers]。

每一个配置参数或是一个全局参数(影响或控制整个服务器),或是一个服务参数
(影响或控制服务器提供的某项服务)。[global]节设置全局选项和一些缺省的服务
选项。[home]节是用来动态的映射到每个用户的home目录下。[printers]节用来设置
将按照系统printcap文件配置的打印机
共享至指定用户。



一个简单的smb.conf

下面的smb.conf描绘了一个简单的但能工作的配置:

[global]

netbios name = FRODO

workgroup = UAB-TUCC

server string = John Blair's Linux Box

security = user

printing = lprng



[homes]

comment = Home Directory

browseable = no

read only = no

在[global]节中设置了主机的netbios名,主机所在的工作组的组名和将在browse l
ist 出现的提示字串。安全参数提示samba使用“user level”(用户级)
安全级别。SMB有两种安全级别:share(共享级,对每个特定的资源使用口令保护
和指定每个用户有各自不同的访问权限)和user level(用户级)。不过在大多数情
况下,你使用的是用户级安全级别。

由于没有指定特殊的加密方式,samba缺省使用标准的unix口令字验证方式既plaint
ext口令字验证方式验证每个连接。若你的linux使用PAM模块,那麽你必须修改PAM配
置使samba可以通过口令字数据库验证口令字。RadHat自动进行这些处理。

[homes]节中的设置用来控制每个用户home目录的共享情况。Comment parameter(
注解参数)是在browse list 中标示该条目的字串。 browseable参数控制是否该项服
务出现在browse list 中。

下列的配置使每个可以登录至samba 服务器的用户使用在系统printcap 文件中定义
过的打印机。

[printers]

browseable = no

guest ok = yes

printable = yes



图3.windows 资源管理器中看到的samba配置





图4.使用smbclient在xterm中看同工作组的供享资源

结论

samba是一个优绣的连通unix和windows系统的工具。它证明了自由软件的优越性,
尤其是在同一些商用软件比较的时侯。

资源

samba的主页 http://samba.anu.edu.au/samba


-- 日出东方,唯我不败;
天上地下,唯我独尊。

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.101]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店