samba原理

Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口;后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。

(1)samba的工作流程
当客户端访问服务器时,信息通过SMB协议进行传输,其工作过程可以分成四个步骤:

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

步骤2:建立连接
当SMB类型确认后,客户端会发送session setup指令数据包,提交帐号和密码,请求与Samba服务器建立连接,如果客户端通过身份验证,Samba服务器会对session setup报文作出回应,并为用户分配唯一的UID,在客户端与其通信时使用;

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

步骤4:断开连接
共享使用完毕,客户端向服务器发送tree disconnect报文关闭共享,与服务器断开连接。

(2)samba相关进程
Samba服务是由两个进程组成,分别是nmbd和smbd。
nmbd:其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。
smbd:其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管理数据传输

samba搭建

一、安装和启动samba
(1)使用命令rpm -qa | grep samba可以检查是否安装了samba服务,没有安装下载安装一个即可;
(2)关闭防火墙:可使用service iptables stop命令关闭防火墙,也可以对防火墙进行修改,放行某些端口(如445);
(3)samba服务操作:service smb start | stop | restart;如果想让samba服务开机自动加载,可使用ntsysv命令打开开机自动加载的服务,并勾选smb后按Tab键确认退出,即可实现开机加载samba服务;

二、配置samba服务
(1)samba服务的配置文件是 /etc/samba/smb.conf,smb.conf文件中包括4中结构,[Global]、[Homes]、[printers]、[Userdefined_shareName],其中Globa用于定义全局参数和缺省值;Homes用于用户的home目录共享;Printers用于定义打印机共享;Userdefined_ShareName用于自定义共享(可有多个)。(说明:文件中开头带有"#"为说明文件,不执行, 开头带有";"为举例文件,不执行(若想让其执行,去掉";"));
(2)配置全局参数[global]
1) 基本全局参数
workgroup 设置samba要加入的工作组;server string 指定浏览列表里的机器描述;netbios name 设置samba的NetBIOS名字 (需要自己添加);client code page 设置客户字符编码也 936为简体中文(需要自己添加);display charset、unix charset、dos charset是设置字符集(主要目的是支持中文,通过locale命令获取LANG的值,这里为zh_CN.GBK,可在相应的.bash_profile里添加export LANG=zh_CN.GBK后source即可); 

2) 日志全局参数
log file 指定日志文件的名称;max log size 指定日志文件的最大尺寸(KB)。

3) 安全全局参数
security 定义samba的安装等级:share:用户不需要用户名和密码即可登陆samba服务器;user:由提供samba服务的samba服务器负责检查帐户及口令;server:检查帐户及口令的工作指定由另一台WindowsNT/2000或samba服务器负责;domain:指定windowsNT/2000域控制器来验证用户帐户、密码;

encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
这两行用于设定是否对samba密码进行加密,并指定加密文件存放路径。
hosts allow 定义允许访问此服务器的IP地址,如192.168.1. 意思为只有192.168.1.0这个网段的IP才能访问该服务器

(3)配置home共享[home]
由于在home共享默认将用户的宿主目录进行了共享,这是十分危险的。所以我们必须删除home共享,方法很简单,将所有的指令前加";"或"#",让这条指令不执行,也就不对用户的宿主目录共享了 

(4)配置自定义共享
自定义共享,只需在文件最后加入[$name],$name任意起,其参数意义为:comment 描述该共享的名称;path 定义该共享的目录;browseable 指定共享的目录是否可浏览;writable 指定共享的目录是否有写入权限;read only 指定共享的目录为只读权限;public 指定是否可以允许Guest帐户访问;guest ok 通public相同,yes为允许guest访问;only guest 指定只有guest用户可以访问;calid users 指定访问该共享的用户。 

(5)其他
1) 访问服务器需用户名和密码验证:命令行下输入smbpasswd -a test,使test用户同时成为samba用户(前提Global中设置security=user);smbpasswd -d test 禁用test用户作为samba用户、smbpasswd -e test 启用test用户作为samba用户、smbpasswd -x test 删除test用户作为samba用户;
2) 客户端只能通过用户访:在相应[Userdefined_shareName]中添加valid users = test,即可只允许该用户登录;
3) 上面实例中给出的是一个针对guest用户仅read功能的情况,那其中的东西该如何维护,可以新建一用户,其宿主目录设为/home/seqa_photo,仅该用户维护即可。

完成以上配置后重启samba服务,在文件窗口打开"\\\10.20.146.13"即可看到存放在linux上的内容。 

转载于:https://www.cnblogs.com/welkinwalker/archive/2011/05/30/2063280.html

samba服务的原理与搭建(转的别人的)相关推荐

  1. 快速搭建samba服务

    如何在UNIX主机和windows主机共享数据呢?搭建FTP服务是一种,但是FTP能够很方便的上传下载数据,但是如果想修改数据就会比较麻烦了,这时你需要先把文件下载下来,修改以后再上传上去,这种办法很 ...

  2. 【Ubuntu】 Ubuntu16.04搭建Samba服务

    1. Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共 ...

  3. Debian搭建Samba服务

    Debian搭建Samba服务 安装服务 将用户注入到Samba组 在home目录下创建share共享文件 设置share文件的权限(读写可执行) 编译Samba文件 comment :共享名称 pa ...

  4. 架设linux服务器下的samba,Linux 服务器搭建之Samba服务

    Linux服务器搭建之Samba服务 一.Samba服务基础 Samba是著名的开源软件项目之一,它在Linux/UNIX系统中实现了微软的SMB/CIFS网络协议,从而使得跨平台的文件共享变得更加容 ...

  5. Linux samba服务搭建

    Ubuntu samba服务搭建 samba服务安装 sudo apt-get install samba samba-common -y 如下: smaba配置文件设置 sudo vi /etc/s ...

  6. centOs6.5版Linux系统中搭建Samba服务(附搭建Samba设置及相关配置参考)

    一.实验环境(仅做参考,可以用更新版本) Linux版本:CentOS-6.5-i386-bin-DVD1 虚拟机:VMware Workstation Pro14.1.3 虚拟机设置为桥接模式,虚拟 ...

  7. Linux系统搭建Samba服务

    SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.(思考我i们pc上的网上邻居)不同用户访问主机,根据自己的权限可看到或操作相应的资源. 前提条件: ...

  8. Samba服务概述、配置、及其搭建

    文章目录 写在开头的话 Samba 概述 Samba与FTP的区别 ftp 的优缺点: Samba 的特性: smb 协议和 cifs 之间的关系 Samba 服务详解 Samba 软件相关信息 登录 ...

  9. samba 服务搭建

    目录 一.samba 简介 二.samba 服务的特点 三.samba的主要应用 四.常见文件服务器软件的比较 五.samba服务搭建 1.安装Samba服务 2.启动服务 3.创建用户 4.pdbe ...

  10. samba服务搭建过程

    简介: Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源 ...

最新文章

  1. PyQt 5布局管理
  2. 1.4 Java创建一个学生类
  3. 使用hotnode自动更新脚本(热发布)
  4. android Rom 制作2
  5. editor does not contain a main type的解决方案
  6. mysql安装排错-解决1
  7. GridView控件RowDataBound事件中获取列字段途径
  8. 【优化算法】鲸鱼优化算法(WOA)【含Matlab源码 1243期】
  9. VDI序曲十九 无须×××直接mstsc到内网服务器
  10. Python编程:数据可视化《Python编程:从入门到实践 第2版》笔记
  11. 基于HTTP访问特定URL的抓包程序该怎么写
  12. 设计模式(十一)——树形结构:组合模式
  13. 量子测量 量子计算 量子通讯 概述
  14. 开发嵌入式软件构建管道
  15. C#中的控件Binding
  16. 重装Win7系统步骤和详细教程
  17. DRM系列(3)之DRM_IOCTL_MODE_MAP_DUMB
  18. C语言小记:结构体及其在内存中的储存形式
  19. 计算机网络知识点整理---应用层(六)
  20. python安装cpickle_python中cPickle

热门文章

  1. 循环神经网络之LSTM和GRU
  2. centos操作---搭建环境 安装python
  3. js判断IE浏览器及版本
  4. 非线性支持向量机(2)
  5. STM32的ADC精度提高方法
  6. Delphi 之 定时器 (TTimer组件)
  7. C#基础温习(10):C#实现托盘功能
  8. Postgresql----libpq
  9. iOS 给测试人员测试手机APP的四种方法:真机运行(略),打ipa包,(testFlighe)邮件,蒲公英(三)蒲公英
  10. 字符数组的定义与使用具体解析