Chinaunix首页 | 论坛 | 博客
  • 博客访问: 66247
  • 博文数量: 7
  • 博客积分: 450
  • 博客等级: 下士
  • 技术积分: 120
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-10 10:02
文章分类
文章存档

2010年(3)

2009年(1)

2008年(3)

我的朋友

分类: LINUX

2008-03-04 16:04:18

(1) SMB协议介绍
    SMB(Server Message Block, 服务信息块)协议是一个高层协议,它提供了在网络上的不同计算机之间共享文件,打印机和不同通信资料的手段.
    SMB使用NetBIOS API实现面向连接的协议,该协议为Windows客户程序和服务器提供了一个通过虚电路,按照"请求---响应"方式进行通讯的机制.
    SMB的工作原理就是让NetBIOS与SMB协议运行在TCP/IP上,并且使用NetBIOS的名字解析器让Linux机器可以在Windows的网络邻居中被看到,从而
    和Windows操作系统进行互相沟通,共享文件和打印机.
    
(2) SMB简介
    A.在Unix-like操作系统上面我们可以用于文件共享的file system是NFS(Network file system).在Microsoft下的Windows上面可以用于文件共
    享的File System的是"Common Internet File System --- CIFS",就是我们常用的"网上邻居".
   
    B.Samba这个文件系统是架设在NetBIOS(Network Basic Input/Output System)这个通讯协议上所开发出来的.NetBIOS是不支持跨路由的,所以我
    们有NetBIOS over TCP/IP这个技术来弥补这个缺陷.我们在Windows网路设置里面常常看到的NetBEUI(NetBIOS Extend User Interface)也是IBM
    在NetBIOS发展出来之后的改良版本.
   
    C.Samba的核心是两个守护进程smbd和nmbd程序,其中:
      nmbd:这个守护进程是用来管理工作群组和NetBIOS解析的.主要利用UDP协议开启port137,138来负责名称解析的任务.
      smbd:这个守护进程的主要功能是用来管理Samba主机共享的目录,文件和打印机等等.主要利用可靠的TCP协议来传输资料,开发的port为139,
      445(不一定).
     
    D.Samba的连接模式有两种,分别是:
      peer/peer: 点对点式
      domain model: 我的理解有点类似于Server---Client的模式.
      
    E.Samba中各模组和配置文件功能之介绍:
      1.主要模组介绍
        samba: 包涵smbd,nmbd,samba的源代码文件,与samba相关的logrotate.
        samba-common: 包涵smb.conf,及testparm等配置方面的工具.
        samba-client: 提供当Linux作为Client端是,所需要的工具指令.
       
      2.主要配置文件功能介绍:
        /etc/samba/smb.conf: Samba服务器最主要的配置文件.
        /etc/samba/lmhosts: 主要目的是实现NetBIOS name和该主机IP的映射.实际上它有点像是/etc/hosts的功能.只是lmhosts对应的主机名是
                    NetBIOS name.当前的SAMBA版本的功能是越来越强大,所以通常只要一启动Samba,它就能捕捉到LAN中相关电脑的
                    NetBIOS name对应的IP了,因此这个配置文件通常不用设定.
        /etc/samba/smbpasswd: 这个文件用来保存samba的使用者帐号和对应密码.这个文件通常不存在,我只知道有两种方式来生成该文件:
                              a.使用"cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd"命令.该指令可以生成smbpasswd这样一个
                                用户名和密码的配置文件,但里面的用户密码还是需要管理员一个一个的手动设置,如何将用户名和密码一起导出,
                                暂时还没有一个明确的解决方案.
                              b.使用"smbpasswd -a username"命令,执行该命令后,samba会自动生成一个smbpasswd这样的一个文件,此种方法也
                                需要管理员对帐号一个一个手动输入,然后分别对每一个帐号设定密码.
        /etc/samba/smbusers: 这个配置文件存放了Windows和Unix-like相对应的帐号,利用这个文件可以解决两个操作系统中帐号不一致的问题.
                             如果需要使用该文件,必须要在smb.conf配置文件中,设置"username map"才能有效.
        smbstatu: 用来查看Samba服务器状态的命令.
        smbpasswd: 用来设定Samba用户和密码的命令.
        smbclient: Samba的客户端命令.
        smbmount: 将服务器共享的文件或者目录挂载到本地Linux操作系统上面的命令.
        smbtree: 查看工作群组与电脑名称的树状目录分布图.
        /usr/share/doc/samba-<版本>: 所有的参考文档均在此目录下.
       
                          
                               
                             
        
阅读(2882) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~