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

十一、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:所在工作组

相关文章:

十一、Samba文件共享服务

目录 1、Samba介绍1.1、Samba概述1.2、Samba服务器的主要组成部分1.3、Samba的工作原理2、Samab服务器的安装与配置2.1、安装samba2.2、Samba主配置文件2.2.1、全局设置段[global]2.2.2、用户目录段[homes]2.2.3、配置文件检查工具3、示例3.1、需要用户验证的共享3.2、用户映射…...

医疗影像检测系统设计与实现

以下是一个基于YOLO系列模型的医疗影像检测系统实现及对比分析的详细技术文档。由于目前官方YOLOv11尚未发布,本文将基于YOLOv8架构设计改进型YOLOv11,并与YOLOv8、YOLOv5进行对比实验。全文包含完整代码实现及分析,字数超过6000字。 # 注意:本文代码需要Python 3.8+、PyT…...

11.13 LangGraph记忆机制解析:构建生产级AI Agent的关键技术

LangGraph 持久化与记忆:构建具备记忆能力的生产级 AI Agent 关键词:LangGraph 持久化, 多回合记忆, 单回合记忆, 检查点系统, 状态管理 1. 记忆机制的核心价值 在对话式 AI Agent 的开发中,记忆管理直接决定了用户体验的连贯性和智能性。LangGraph 通过 多回合记忆(Mult…...

C++23中std::span和std::basic_string_view可平凡复制提案解析

文章目录 一、引言二、相关概念解释2.1 平凡复制(Trivially Copyable)2.2 std::span2.3 std::basic_string_view 三、std::span和std::basic_string_view的应用场景3.1 std::span的应用场景3.2 std::basic_string_view的应用场景 四、P2251R1提案对std::…...

[yolov11改进系列]基于yolov11引入感受野注意力卷积RFAConv的python源码+训练源码

[RFAConv介绍] 1、RFAConv 在传统卷积操作中,每个感受野都使用相同的卷积核参数,无法区分不同位置的信息差异,这都限制了网络性能。此外,由于空间注意力以及现有空间注意力机制的局限性,虽然能够突出关键特征&#xf…...

Springboot引入Spring Cloud for AWS的配置中心(Parameter Store和Secrets)

问题 现在手上有一个老Spring2.5.15项目,需要使用AWS Parameter Store作为配置中心服务。 思路 引入这个Spring版本对应的Spring Cloud,然后再引入Spring Cloud AWS相关组件。然后,在AWS云上面准备好配置,然后,启动…...

打破云平台壁垒支持多层级JSON生成的MQTT网关技术解析

工业智能网关的上行通信以MQTT协议为核心,但在实际应用中,企业往往需要将数据同时或分场景接入多个公有云平台(如华为云IoT、阿里云IoT、亚马逊AWS IoT),甚至私有化部署的第三方平台。为实现这一目标,网关需…...

Modbus通信中的延迟和时间间隔详解

在工业自动化领域,Modbus协议作为最广泛使用的通信协议之一,其通信时序和延迟控制直接影响到系统的稳定性和效率。本文将深入探讨Modbus通信中涉及的各种延迟和时间间隔,帮助开发者更好地理解和应用这些概念。 一、串口Modbus通信中的延迟问题 1.1 为什么需要延迟? 在基…...

maven 最短路径依赖优先

问题描述: 项目在升级大版本后出现了,两个不同模块所引用的同一个依赖包版本不同 module A 引用了 module B,module B 引用了 A_1.0.jar->B_1.0.jar->C_1.0.jar(C 为B 里面的包) 在执行 mvn dependency:tree 后发现: modul…...

SAAS架构设计2-流程图-用户与租户之间对应关系图

在SAAS(Software as a Service,软件即服务)结构中,用户与租户之间的关系可以通过一对一和多对多两种方式来定义。这两种关系模式各自有着不同的应用场景和特点。 用户和租户的关系(一对一) 一对一关系 在这…...

TypeScript入门到精通

学习ts之前,我们首先了解一下我们为什么要学ts,ts是什么?ts比js有不同呢? TypeScript 是 JavaScript 的一个超集,是由微软开发的自由和开源的编程语言,支持 ECMAScript 6 标准(ES6 教程)。在 Ja…...

三、Docker目录挂载、卷映射、网络

目录挂载 如果主机目录为空,则容器内也为空 -v表示目录挂载 冒号前面的是主机上的目录,冒号后面的是docker容器里面的地址 修改主机上的文件,发现docker容器里面的内容也随之改变。 同样修改docker容器里面的内容,主机上的文件…...

迪米特法则 (Law of Demeter, LoD)

定义:迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。 迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),…...

【R语言编程绘图-函数篇】

基础函数绘制 R语言可通过curve()函数直接绘制数学函数图形,无需预先生成数据点。例如绘制正弦函数: curve(sin, from -pi, to pi, col "blue", lwd 2)自定义函数绘制 对于用户自定义函数,需先定义函数表达式: …...

训练自己的yolo模型,并部署到rk3588上

文章目录 1. 训练自己的模型2. pt转onnx3. onnx转rknn4. 后续…… 1. 训练自己的模型 如何训练自己的yolo模型,网络上已经有足够多的教程,这里只简单的描述一下。如果已经有了自己的.pt模型,那么可以直接跳转到第二节。 此处是以检测模型的…...

Leetcode 3556. Sum of Largest Prime Substrings

Leetcode 3556. Sum of Largest Prime Substrings 1. 解题思路2. 代码实现3. 算法优化 题目链接:3556. Sum of Largest Prime Substrings 1. 解题思路 这一题毕竟只是这一次双周赛的第一题,虽然标记为medium的题目,但是思路上还是非常简单…...

以少学习:通过无标签数据从大型语言模型进行知识蒸馏

Learning with Less: Knowledge Distillation from Large Language Models via Unlabeled Data 发表:NNACL-Findings 2025 机构:密歇根州立大学 Abstract 在实际的自然语言处理(NLP)应用中,大型语言模型&#xff08…...

鸿蒙OSUniApp 实现带有滑动删除的列表#三方框架 #Uniapp

使用 UniApp 实现带有滑动删除的列表 在移动应用开发中,滑动删除(Swipe to Delete)是一种常见且实用的交互方式,广泛应用于消息、待办、收藏等列表场景。用户只需在列表项上左右滑动,即可快速删除或管理数据。随着 Ha…...

Qt qml Network error问题

最近在学习Qt&#xff0c;需要调用地图&#xff0c;所以用到了QML&#xff0c;但是却遇到了这样的问题 d://qt_project//run//main.qml: Network error 现在我展示一下我的main文件的代码&#xff1a; #include <QApplication> #include <QQuickView> #include &l…...

Prompt工程:解锁大语言模型的终极密钥

Prompt工程&#xff1a;解锁大语言模型的终极密钥 一、引言&#xff1a;Prompt的战略价值重构 在人工智能技术加速渗透的2025年&#xff0c;Prompt&#xff08;提示词&#xff09;作为连接人类意图与大语言模型&#xff08;LLM&#xff09;的核心接口&#xff0c;其战略地位已…...

Spring Boot微服务架构(六):伪装的微服务有哪些问题?

伪装的微服务有哪些问题&#xff1f; 伪装的微服务架构&#xff08;即表面上模仿微服务设计&#xff0c;但未真正遵循其核心原则的系统&#xff09;通常具备以下特征点&#xff0c;这些特征可能导致系统复杂度增加、维护困难或性能下降&#xff1a; ​​1. 服务间强耦合​​ …...

恶意npm与VS Code包窃取数据及加密货币资产

60个npm包窃取系统敏感信息 安全研究人员在npm软件包注册表中发现60个恶意组件&#xff0c;这些组件能够收集主机名、IP地址、DNS服务器和用户目录信息&#xff0c;并将其发送至Discord平台控制的终端节点。据Socket安全研究员Kirill Boychenko上周发布的报告显示&#xff0c;…...

Matlab快速上手五十六:详解符号运算里假设的用法,通过假设可以设置符号变量的取值范围,也可以通过假设设置变量属于集合:整数、正数和实数等

1.符号变量中假设的概念 在符号数学工具箱中&#xff0c;符号变量默认范围是全体复数&#xff0c;也就是说&#xff0c;符号运算是在全体复数域进行的&#xff0c;若需要运算中&#xff0c;不使用全体复数域&#xff0c;可以为变量设定取值范围&#xff0c;这就用到了假设&…...

机器学习笔记【Week1】

一、机器学习简介&#xff08;Introduction&#xff09; 什么是机器学习&#xff1f; 定义&#xff08;Tom Mitchell&#xff09;&#xff1a; “A computer program is said to learn from experience E with respect to some task T and performance measure P, if its per…...

什么是3D全景视角?3D全景有什么魅力?

什么是3D全景视角&#xff1f;3D全景视角的全面解析。 3D全景视角&#xff0c;又称为3D全景技术或3D实景技术&#xff0c;是新兴的富媒体技术&#xff0c;基于静态图像和虚拟现实&#xff08;VR&#xff09;技术&#xff0c;通过全方位、无死角地捕捉和展示环境&#xff0c;为…...

【Mini-F5265-OB开发板试用测评】按键控制测试

本文介绍了如何使用按键控制 MCU 引脚的输出电平。 原理 由原理图可知 板载用户按键 K1 和 K2 分别与主控的 PB0 和 PB1 相连。 代码 #define _MAIN_C_#include "platform.h" #include "gpio_key_input.h" #include "main.h"int main(void) …...

Debian重装系统后

安装配置java环境 手动安装 下载openJDK&#xff1a;openJDK 设置替代项 sudo update-alternatives --install /usr/bin/java java /opt/jdk-21.0.2/bin/java 1 sudo update-alternatives --install /usr/bin/javac javac /opt/jdk-21.0.2/bin/javac 1 sudo update-alternat…...

每日Prompt:古花卷

提示词 主体对象 一本展开的古画卷 古画卷内呈现的内容 一片微型春秋鲁国&#xff0c;有古代马车&#xff0c;孔子乘坐周游列国&#xff0c;颜回、子路、子贡、曾参紧随其后 古画卷的外观状态 表面已经开裂和风化&#xff0c;呈现出年代感和历史感 与文字描述的首句一致&…...

[学习]C语言指针函数与函数指针详解(代码示例)

C语言指针函数与函数指针详解 文章目录 C语言指针函数与函数指针详解一、引言二、指针函数&#xff08;函数返回指针&#xff09;定义与语法典型应用场景注意事项 三、函数指针&#xff08;指向函数的指针&#xff09;定义与声明初始化与调用赋值方式调用语法 高级应用回调函数…...

夏季用电高峰如何防患于未“燃”?电力测温技术守护城市生命线

随着夏季来临用电负荷激增&#xff0c;电力系统面临严峻的高温考验&#xff0c;电力测温技术的重要性愈发凸显&#xff0c;电力安全是城市生命线工程的核心环节&#xff0c;电力测温已从"可选功能"升级为"必要的基础安全设施"。通过实时感知、智能分析和快…...