(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-<版本>: 所有的参考文档均在此目录下.
阅读(2902) | 评论(0) | 转发(0) |