|
|
|
|
移动端

6.1 Samba概述

《Linux服务器配置全程实录》第6章使用Samba配置文件服务器。Samba作为类UNIX系统和Windows的通信的桥梁,目前应用非常广泛,本章中讲解在RHEL下通过Samba配置文件服务器、打印服务器,PAM在Samba中的应用、异构环境相关内容。本节为Samba概述。

作者:张勤/杨章明来源:人民邮电出版社|2011-08-10 14:36

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

第6章 使用Samba配置文件服务器(包含25分钟操作录像

文件服务器为网络上各主机提供完整数据、文件、目录等信息共享,实现统一管理的服务器。它能进行文件建立、删除、打开、关闭、读写等操作。在企业网络中,为了有效地进行各项文件管理功能,通常都需要一台或多台服务器来提供数据、文件、目录等信息共享。文件服务器提供网络上的中心位置,可供存储文件并通过网络与用户共享文件。当用户需要文件时,可以访问文件服务器上的文件,而不必在各自独立的计算机之间传送文件。

虽然微软公司为满足企业文件服务器需求做了大量的工作,特别是Windows Server 2003 R2及Windows Server 2008中在文件服务器功能上较之以前有了非常大的改善,但是由于种种原因使用Linux作为企业的文件服务器不管从总体成本还是可靠性来说都是一个非常不错的选择。在Linux平台实现文件服务器功能比较常见的方法包括FTP(具体见第5章)、NFS(具体见第7章)以及本章讲述的Samba服务器。

6.1 Samba概述

早期的UNIX系统中可以通过NFS让所有类UNIX系统之间可以实现资源共享,而同样的,微软为了让Windows(及当时的DOS)系统间可以实现资源共享,提出了一个不同于NFS的SMB(Server Message Block)通信协议,使得网络中的文件系统、打印机等可以实现资源共享。由于Sun公司将NFS协议完全公开,所以在许多类UNIX的系统中都可以使用NFS实现资源共享。但是如果想在UNIX与Windows共享资源却很困难(由于微软公司没有将SMB协议公开),基本只有通过FTP实现。

提示:IBM为个人计算机网络设计了一套NetBIOS API(Network Basic Input/Output System Application Program Interface),这组API用18个命令来让网络中的个人计算机能够建立和使用连接服务。1985年的时候又推出了NetBIOS 的后续版本NetBIOS Extened User Interface(或称为NetBEUI),但由于NetBEUI 协议是为了小型局域网络而设计的,所以首要考虑的是速度。也因此有个致命的弱点,它是non-routable协议(也就是不能够与跨路由的主机通信)。后来在NetBIOS下除了可使用non-routable NetBEUI协议外,也出现了可以跨路由的协议(比如NetBIOS over TCP/IP)等。微软公司在NetBIOS的基础上发展出了SMB协议。

直到1991年,Andrew Tridgwell通过对数据包的分析,而编写了Samba这个自由软件(Samba官方网站:http://www.samba.org),只要在类UNIX上启用Samba 服务,类UNIX系统就好像变为了Windows系统,可利用SMB协议与Windows系统之间实现资源共享等相关功能。

Samba是开放源代码的GPL自由软件,可以说又是自由软件界的一个重大贡献。Samba的出现彻底解决类UNIX与Windows之间的资源共享与访问,它以其简洁、实用、灵活配置、功能强大的特点受到越来越广泛的关注。也是因为这个原因现在几乎所有的类UNIX都可以使用Samba服务。

由于Samba是作为类UNIX系统和Windows的通信的桥梁,在设计上是让类UNIX系统加入到Windows网络中,而不是让Windows加入类UNIX网络中,因此需先简单了解一下Windows网络的工作原理。Windows 9x、Windows Me及Windows NT中SMB使用137(UDP)、138(UDP)及139(TCP)端口,Windows 2000以后的版本中使用445(TCP)端口。SMB与OSI 7层类型的对应关系如图6-1所示。

 
图6-1  SMB与OSI 7层类型的对应关系

Samba服务主要提供以下功能。

(1)共享类UNIX系统上的资源(目录、打印机)。

(2)使用Windows上的共享资源(目录、打印机)。

(3)通过Windows对使用Samba资源的用户进行认证。

(4)使用WINS服务进行名称解析及浏览。

(5)通过SSL实现安全的数据传输。

Samba服务主要由以下两个进程组成。

(1)nmbd:进行NetBIOS名称解析,并提供浏览服务显示网络上的共享资源列表。

(2)smdb:管理Samba服务器上的共享目录、打印机等。主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时要靠smdb这个进程来管理数据传输。

Samba服务与Samba客户端的工作流程如下。

(1)协议协商:客户端在访问Samba服务器时,发送negprot命令包,告知目标计算机其支持的SMB类型。Samba服务器根据客户端情况,选择最优的SMB类型,并做出回应。

(2)建立连接:当SMB类型确认后,客户端会发送session setup命令数据包,提交账号、密码,请求与Samba服务器建立连接。如果客户端通过身份验证,Samba服务器会对session setup报文做出回应,并为用户分配惟一的UID,在客户端与其通信。

(3)访问共享资源:客户端访问Samba共享资源时,发送tree connect命令数据包,通知服务器需要访问的共享资源名,如果设置允许,Samba服务器会为每个客户与共享资源的连接分配TID,客户端即可以访问需要的共享资源。

(4)断开连接:共享完毕,客户端向服务器发送tree disconnect报文关闭共享。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux命令、编辑器与Shell编程

本书是目前所能找到的最实用、最全面的Linux指南和参考手册,也是唯一一本提供以下全部内容的书籍: 更好更实用的示例覆盖了实际工作中需...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊