当前位置: 首页 > news >正文

十一、Samba文件共享服务

目录

  • 1、Samba介绍
    • 1.1、Samba概述
    • 1.2、Samba服务器的主要组成部分
    • 1.3、Samba的工作原理
  • 2、Samab服务器的安装与配置
    • 2.1、安装samba
    • 2.2、Samba主配置文件
      • 2.2.1、全局设置段[global]
      • 2.2.2、用户目录段[homes]
      • 2.2.3、配置文件检查工具
  • 3、示例
    • 3.1、需要用户验证的共享
    • 3.2、用户映射及访问地址限制
      • 3.2.1、共享账号映射(别名)
      • 3.2.2、访问地址限制
    • 3.3、访问共享文件夹
      • 3.3.1、smbclient 命令,查看及登录使用共享
      • 3.3.2、使用mount 挂载共享文件夹

1、Samba介绍

Samba的核心是SMB协议,它是Microsoft和Intel在1987年联合制定的协议,主要用于实现Microsoft网络通信的协议。而Samba被认为是一套软件,使Linux系统可以应用于Microsoft网络通信协议。

1.1、Samba概述

服务器信息块(Server Message Block,SMB)协议是一种Client/Server(客户端/服务器)、请求响应协议,主要用于在计算机之间共享文件、打印机、串行端口等。
通过SMB协议,应用程序可以访问远程服务器端的文件、以及打印机、命名管道(named pipe)。同样,客户端应用程序可以使用SMB协议,在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。
在SMB协议中,它为系统提供了两种安全保护,分别是共享级保护(Share Level Protection)和用户级保护(User Level Protection)。

  • 共享级保护(Share-Level Security)
    在共享级保护模式下,访问控制是基于每个共享资源的。这意味着每个共享文件夹或打印机可以设置一个密码,而任何知道这个密码的用户都可以访问该共享资源,不管这个用户是谁。这种方式简单易用,但提供的安全性较低,因为它不区分不同的用户,只要知道密码,任何人都可以访问。
  • 用户级保护(User-Level Security)
    用户级保护提供了更高级别的安全性。在这种模式下,网络上的每个用户都需要有一个账户和密码,这些账户信息通常由网络上的服务器(如Windows域控制器)管理。当用户尝试访问共享资源时,他们必须提供有效的用户名和密码,服务器将验证这些凭据并决定该用户是否有权访问该资源。这种方式允许对不同用户进行更细粒度的访问控制,可以设置哪些用户可以访问哪些资源,以及他们可以进行哪些操作(如读取、写入、修改等)。

1.2、Samba服务器的主要组成部分

在Linux系统中,Samba服务实际上就是一个软件程序集,通过该程序集来实现SMB协议。Samba程序集的主要组件如下所示:

  • smbd 使用SMB协议与客户端进行连接,主要完成用户认证、权限管理和文件共享的任务。当用户访问服务器,需要查找共享文件就是依靠该进程对数据传输进行管理。
  • nmbd提供NetBIOS名称服务器的守护进程,帮助客户端计算机定位服务器和域。另外,还提供浏览服务以显示网络上的共享资源列表。
    使用netstat命令可以验证服务进程状态,其中smbd程序负责监听TCP协议的139端口(SMB协议)、445端口(CIFS协议),而nmbd服务程序负责监听UDP协议的137-138端口(NetBIOS协议)
    netstat -anupt |grep “mbd”
  • smb.conf Samba服务器的主配置文件。
  • swat Samba服务器专用的WWW服务器,主要用于通过客户端计算机的浏览器配置Samba服务器,提供了Samba服务器的图形化配置界面。
  • smbclient 一个简单的SMB客户端程序,主要用于访问其他SMB计算机共享的文件或打印资源。
  • smbprint 一个Shell脚本,使用smbprint程序可以向Windows操作系统下共享的打印机发送需要打印的文档。
  • smblookup 一个查询工具,用于查询NetBIOS名称服务器的命令行程序。

1.3、Samba的工作原理

在Linux系统中,使用Samba服务架设的Samba服务器,可以使Linux客户能够查看到服务器上的共享资源;同时,Windows用户也可以查看到Linux服务器中共享的资源,它具体的工作过程如下:
(1)协议协商,在Samba服务架设完成后,如果客户端要访问Samba服务器时,客户端会向Samba服务器发送一个SMB negprot请求数据报,并列出它所支持的所有SMB协议版本。当服务器接收到客户端的请求信息后,会开始响应请求并列出希望使用的协议版本。如果没有可以使用的协议版本,则返回0XFFFFH通信结束信息。
(2)建立连接,在客户端与Samba服务器协议协商确定SMB协议版本后,客户端通过发送SesssetupX请求数据报向服务器发起一个用户或共享认证,包括一对用户名和密码或一个简单密码。当服务器接收到认证后,会向客户端发送一个SesssetupX应答数据报,表示允许或拒绝本次连接。
(3)访问共享资源,当客户端和服务器建立连接完成后,客户端会向服务器发送一个Tcon或SMB TconX数据报列出想要访问网络资源的名称;然后,服务器会发送一个SMB TconX应答数据报,表示该访问是否被接受或拒绝。
(4)断开连接,当访问被允许后,客户端会连接到服务器的相应资源。这时,客户端可以通过SMB协议提供的命令,对文件进行打开、读取、修改和关闭等操作。

2、Samab服务器的安装与配置

2.1、安装samba

在CentOS系统中,Samba服务器在默认情况下是没有被安装的;因此,需要用户手动安装。如果用户想要查看系统中是否已安装了该软件包,可以使用“rpm-q samba”命令,具体步骤如下:

[root@192 ~]# rpm -q samba
未安装软件包 samab
[root@192 ~]# yum -y install samba

2.2、Samba主配置文件

Samba主配置文件位于/etc/samba目录下,名称为smb.conf。
smb.conf文件主要包括全局设置段[global]、用户目录段[homes]和打印机[printers]段。smb.conf.example为模板文件,其中,“#”则表示是系统注释用于解析说明,“;”则表示可以由用户来修改或设置的部分。

2.2.1、全局设置段[global]

“全局”部分包含了适用于整个服务器的设置。下面是一些常见的全局配置项及其含义:

  • workgroup:所在工作组

相关文章:

  • 2025年- H55-Lc163--124. 二叉树的最大路径和(深搜)--Java版
  • 以知识管理赋能 DevSecOps,加速关键领域软件自主演进
  • 字符串day7
  • 11.12 LangGraph全局共享状态实战:200ms实现50+仓库AI协同,效率飙升!
  • 科技赋能建筑行业,智能楼宇自控系统崭露头角成发展新势力
  • 拆解汽车HMI设计:如何用3D可视化提升驾驶安全感?
  • 服务发现Nacos
  • CMake指令:file()
  • Unity Sherpa-onnx 笔记
  • K8s入门(4)Kubernetes的技术演进
  • VR三维数字空间还原
  • 卓力达蚀刻工艺:精密制造的跨行业赋能者
  • 光电赋能低空场景,灵途科技助力无人机持续升级
  • Mongodb | 基于Springboot开发综合社交网络应用的项目案例(中英)
  • RK3568 OH5.1 镜像烧录
  • C++将地址转换为字符串
  • 行为型:中介者模式
  • Python requests
  • 文件类型汇总
  • Liunx部署ES单机集群
  • wordpress地址表单/seo1短视频网页入口营销
  • 简单网站开发/西安网络优化哪家好
  • 武汉汉口做网站哪家好/广告联盟app
  • wordpress搜索 文章/seo软件全套
  • 免费微网站系统源码/旅游最新资讯
  • 低价做网站/千锋培训机构官网