首页 > 代码库 > samba工作机制

samba工作机制

Samba协议基础

 

在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(ServerMessage Block)协议。这个协议被Microsoft用于它们Lan Manager和WindowsNT服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。

 

随着Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Internet上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为 CIFS(Common InternetFile System),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。

 

因此,为了让Windows和Unix计算机相集成,最好的办法即是在Unix计算机中安装支持SMB/CIFS协议的软件,这样Windows客户就不需要更改设置,就能如同使用WindowsNT服务器一样,使用Unix计算机上的资源了。Samba是用来实现SMB的一种软件,它的工作原理是,让NETBIOS(Windows95网络邻居的通讯协议)和SMB(ServerMessage Block)这两个协议运行于TCP/IP通信协议之上,并且使用Windows的NETBEUI协议让Unix计算机可以在网络邻居上被Windows计算机看到。

 

 

Samba的工作原理

SAMBA主要提供的是SMB/CIFS或者NETBIOS协议的。

所以只要使用了SAMBA,就能实现让Linux出现在Windows的网上邻居里,或者,让Windows的文件共享在Linux上--

一旦在linux上安装之后,有两个主要进程:

1.nmbd :提供NETBIOS名称解析的

2.smdb : 提供文件共享的。

而由于NETBIOS协议对于windows来讲监听TCP的139端口和UDP的137,138端口,所以nmbd在linux上模拟出了udp的137和138端口,以及tcp的139端口,smdb上模拟出tcp的445端口。而SAMBA将在Linux上同时监听这4个端口。 

 

Samba的安装与配置

1、安装

 yum install samba

安装完成后配置文件是放在/etc/samba/smb.conf

 

安装完成后查看samba的包

 yum list all | grep ^samba

 

samba-client.x86_64                         3.6.23-43.el6_9             @updates

samba-common.x86_64                         3.6.23-43.el6_9             @updates

这两个是作为客户端使用的

samba.x86_64                               3.6.23-43.el6_9            @updates

这个是作为服务端使用

samba-swat-3.5.10-125.el6.x86_64                   //基于https协议的samba服务器web配置界面

 

 

 

 

2、配置

                         配置文件主要有4个部分

                         1、全局配置【global

  2、家目录    homes

  3、独立的共享printer

  4、自定义

第一段分析【golbal】

Workgroup = MYGROUP     定义工作组

 

Server string = Samba Server Version %v  

用于当你打开网上邻居时显示的注释信息

 

 netbios name = xxx   显示在终端的名字

 

 interfaces = lo eth0 192.168.12.2/24192.168.13.2/24

 hosts allow = 127. 192.168.12. 192.168.13.

 定义访问控制列表

 

Security = user

这一项很重要是用来定义SAMBA的服务安全级别,安全级别主要有4

                        1share:允许任何匿名用户访问

 

 2user:默认、每一个用户访问时都需要提供账号密码

 

 3domain/server:

        通常意味着用户的账号密码在认证时时通过第三方集中

        认证,而不是通过系统来认证,比如有专门的认证服务

         器(ad域、nis等)

         

如果samba服务器加入windows域环境中,验证工作服将由windows域控制器负责,domain级别的samba服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows域。

 

 

 

 

   4ads:通过主域控器来认证

           passdb backend = tdbsam  所有的samba用户认证方式

           load printers = yes                是否去尝试加载打印机

           cups options = raw            通用打印系统,指定打印方式

                                        

当samba服务器使用ads安全级别加入到windows域环境中,其就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。

 

 

 

        第二段分析【homes

         comment = Homedirectories         注释信息

 

         browseable = no

         浏览,如果这个用户不是这个目录的属主,是否可以看到这个目录

         no表示只有属主才能看到

 

         writable = yes  是否可以新建文件夹,yes为可以no为不可以

 

 

         第三段分析【printers

          comment = All printers

 

 path = /var/spool/samba       打印池

 

  browseable = no

 

 guest ok = no                            打印机是否公开

 

  wirtable = no

 

  printable = yes

 

 第四段自定义分析【tools】中括号里的表示共享名

          

          comment = mytools                       注释

         

          path = /share         共享目录的路径

 

          browseable =yes                  是否可浏览

 

          guest  ok    =yes                    是否允许来宾账号

 

          writable = yes        是否可写

 

         write list = xxx   定义一个列表决定用户/或组是否可写,定义组的时候

                                     ,需要用@组名

 


本文出自 “鍒囩” 博客,请务必保留此出处http://nakedman.blog.51cto.com/7350188/1944993

samba工作机制