# OhosSamba **Repository Path**: harmony_ecosystem_services/ohos_samba ## Basic Information - **Project Name**: OhosSamba - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-12 - **Last Updated**: 2025-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Samba #### 介绍 本应用基于Samba 4.21.4+版本构建,提供鸿蒙系统网络邻居自动化部署服务,以及跨平台文件共享解决方案 #### 软件架构 采用分层架构设计 ![输入图片说明](images/1.png) 用户交互调用逻辑 ![输入图片说明](images/2.png) ### 关于Samba #### 基本信息 Samba,是种用来让UNIX系列的作业系统与微软Windows作业系统的SMB/CIFS(Server Message Block/Common Internet File System)网路协定做连结的自由软体。第三版不仅可存取及分享SMB的资料夹及印表机,本身还可以整合入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无。 #### 工作原理 Samba工作于服务器模式时,会监听网络上的SMB协议请求,通过协议转换提供Linux系统上的文件和打印服务。客户端通过网络访问这些服务时,Samba会处理SMB请求并将它们转化为本地系统调用,从而实现跨平台操作 #### 主要特点和优势 - ​​功能丰富​​:支持文件共享、打印机共享,还提供认证和授权功能,可控制用户对共享资源的访问权限;支持Windows的工作组和域模式,能与Windows网络环境无缝集成;支持数据传输加密,保障数据安全;兼容多种操作系统和广泛的文件系统;配置灵活,可通过简单文本编辑器修改配置文件。 - ​​成本低廉​​:在Linux系统上构建存储解决方案成本较低,例如在机箱中安装支持IDE RAID卡,安装Linux并启动Samba,就能在网络上安排大量存储空间,适合移动专家笔记本电脑备份和企业长期归档工作。 - ​​可扩展性强​​:是高度可扩展的解决方案,支持从小型家庭网络到大型企业网络的各种规模,支持多种文件和打印协议,还可与其他服务器软件(如Apache)和身份验证系统(如LDAP)集成,增强功能和性能。 ### 安装部署 本软件安装后将在沙箱目录/data/service/hnp/bin/目录下,有smbd和nmbd,smbd和nmbd是Samba服务器的两个关键进程,共同实现文件共享与网络资源管理功能。 #### smbd进程 - 核心功能​​:smbd是Samba服务器的核心进程,负责处理连接请求、共享文件和目录、身份验证以及与客户端之间的数据传输等关键任务,是Samba服务器中最重要的进程。 - 协议处理​​:主要处理客户端和服务器之间的SMB/CIFS协议交互,为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB(Server Message Block)通信作为Microsoft网络的通讯协议,SMB使用了NetBIOS的应用程序接口 ,一般端口使用为139、445。 #### nmbd进程 - 核心功能​​:nmbd是NetBIOS名称服务进程,负责提供名称解析服务,将NetBIOS名称映射到IP地址,实现在网络中发现和识别Samba服务器的功能。 - 协议处理​​:使用NetBIOS协议来提供Windows网络上的计算机名称解析服务,以使客户端能够通过名称寻址Samba服务器。它还负责在本地网络上广播Samba服务器的存在,并回答来自客户端查询的广播。负责监听NetBIOS名字服务(UDP 137)和NetBIOS数据报服务(UDP 138)端口 ### 使用说明 #### 什么是网络邻居(网络共享) “网络邻居”是操作系统中用于访问同一局域网(LAN)内其他设备(如电脑、打印机、共享文件夹等)的工具。通过它,用户可以方便地共享文件、打印机资源或远程访问其他设备。 #### 用户管理 ##### 用户管理的核心概念 在“网络邻居”中共享资源时,​​用户管理​​主要涉及以下内容: ​​- 本地用户账户​​:操作系统中的账户,用于控制本地登录和共享权限。 - ​​共享权限​​:决定用户通过“网络邻居”访问资源时的基本操作权限(如读取)。 ##### 添加/删除用户 添加Samba用户及其密码 使用以下命令创建用户,并为其创建Samba账户和密码。 ```` useradd 用户名 smbpasswd -a 用户名 ```` 删除Samba用户 ```` smbpasswd -x 用户名 ```` 禁用和启用Samba用户 ```` smbpasswd -d 用户名 ```` #### 共享管理 ##### 共享管理的核心概念​​ 在网络邻居中,​​共享管理​​指通过操作系统设置资源(如文件夹、打印机)供局域网内其他用户访问的过程。关键要素包括: - ​​共享权限​​:控制用户通过网络访问资源的权限类型(如读取/写入/完全控制)。 - ​​共享范围​​:定义可访问资源的用户或设备(如特定账户、工作组内所有设备)。 ##### 文件/文件夹共享设置方法​ ​​选择目标文件夹​​,在文件资源管理器中,右键点击需要共享的文件夹,选择 ​​“详情”,切换“共享”选项卡​​。 选择用户后“添加”,可对用户权限进行管理 ![输入图片说明](images/3.png) ##### 权限级别说明 |权限类型 |说明 | |---|---| |读取 |仅允许查看目录内容和文件 | |读取/写入 |允许查看/修改文件内容,但不可删除或修改权限 | #### 常用命令及参数 ##### smbd Samba的核心守护进程,处理文件共享和认证请求。 |常用参数 |参数说明 | |---|---| |-D |以守护进程模式运行 | |-i |前台交互模式运行 | |-d <级别> |设置调试级别(0-10) | |-s <配置文件> |指定配置文件路径 | |-p <端口> |指定监听端口(默认445) | ##### nmbd NetBIOS名称服务守护进程,负责网络浏览和名称解析。 |常用参数 |参数说明 | |---|---| |-D |以守护进程模式运行 | |-d <级别> |设置调试级别(0-10) | |-s <配置文件> |指定配置文件路径 | |-p <端口> |指定监听端口(默认445) | ##### smbcontrol 向运行中的Samba服务发送控制指令(如重载配置、关闭共享)。 |常用参数 |参数说明 | |---|---| |-i |交互模式 | |-s <配置文件> |指定配置文件 | |<目标> <指令> |目标:smbd/nmbd/all | |(如 smbcontrol smbd reload-config) |指令:reload-config、close-share | ##### smbpasswd 管理Samba用户密码及账号。 |常用参数 |参数说明 | |---|---| |-a <用户> |添加用户 | |-x <用户> |删除用户 | |-e <用户> |启用用户 | |-d <用户> |禁用用户 | |-s |静默模式(脚本中使用) | ##### smbclient 类似FTP的客户端工具,用于访问Samba共享。 |常用参数 |参数说明 | |---|---| |-L <服务器> |列出服务器共享 | |-U <用户> |指定用户名 | |-m <协议> |指定SMB协议版本(如SMB3) | |-c <命令> |执行命令后退出(如-c 'ls') | |-W <工作组> |指定工作组 | ##### smbstatus 查看当前Samba连接状态(活跃会话、打开文件等)。 |常用参数 |参数说明 | |---|---| |-b |简洁模式输出 | |-d <级别> |调试级别 | |-p |显示进程信息 | |-S |仅显示共享会话 | ##### pdbedit 管理Samba用户数据库(passdb) |常用参数 |参数说明 | |---|---| |-L |列出所有用户 | |-v |详细模式输出 | |-a <用户> |添加用户 | |-x <用户> 删除用户| | |-m |迁移用户到其他数据库 | |-h |显示帮助 | ##### smbget 类似wget的工具,支持通过SMB协议下载文件。 |常用参数 |参数说明 | |---|---| |-a |匿名访问 | |-r |递归下载 | |-u <用户> |指定用户 | |-w <密码> |指定密码 | |-R |恢复中断下载 |