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

AlmaLinux9.5安装samba实现与Windows文件共享 笔记250214

Fedora41安装samba实现与Windows文件共享 笔记241202

步骤:

  1. 安装samba, 并启用 smb , nmb 服务

    • 切换阿里源(可选)
    ###    备份 /etc/yum.repos.d 文件夹
    tempUri=/etc/yum.repos.d ;    sudo cp -a $tempUri  $tempUri.$(date +%0y%0m%0d%0H%0M%0Sns%0N).bak
    sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^# baseurl=https://repo.almalinux.org|baseurl=https://mirrors.aliyun.com|g' \-i.bak \/etc/yum.repos.d/almalinux*.repo
    sudo dnf makecache  
    
    1. 安装 samba
    sudo dnf update
    sudo dnf install samba -y
    
    1. 启用启动 smb, nmb
    sudo systemctl enable --now smb nmb
    

    等效

    sudo systemctl enable smb nmb
    sudo systemctl start smb nmb
    

    在Ubuntu24.04下,smb和smbd通用, nmb和nmbd通用, CentOS,Alma,Rocky 只能用smb和nmb, Ubuntu18.04只能用nmbd和smbd

  2. 设置 /etc/samba/smb.conf

    • 备份 /etc/samba/smb.conf
    tempSmbDotConfUri=/etc/samba/smb.conf ;    sudo cp -a ${tempSmbDotConfUri} ${tempSmbDotConfUri}.$(date +%0y%0m%0d_%0H%0M%0S_ns%0N).bak
    
    • vi 编辑 /etc/samba/smb.conf
    sudo vi /etc/samba/smb.conf
    
    1. [global]workgrop 设为 workgroup
    [global]workgroup = workgroupsecurity = user
    

    不替换, 保留为: workgroup = SAMBA 也能连通

    1. 设置共享目录, 这里设置了根目录, 在底部加入
      开头可以有空格或制表符,也可以没有, 等号之间可以有空格,也可以没有
      • 开头单 tab 版
      [RootFolder]path = /comment = 根文件夹public = yesread only = nowritable = yesavailable = yesbrowseable = yesguest ok = yes#forceuser = root#forcegroup = rootcreate mask = 0777directory mask = 0777[RootHomeFolder]path = /rootcomment = root用户文件夹public = yesread only = nowritable = yesavailable = yesbrowseable = yesguest ok = yes#forceuser = root#forcegroup = rootcreate mask = 0777directory mask = 0777
      • 开头四空格版
      ### 四空格版
      [RootFolder]path = /comment = 根文件夹public = yesread only = nowritable = yesavailable = yesbrowseable = yesguest ok = yesforceuser = rootforcegroup = rootcreate mask = 0777directory mask = 0777[RootHomeFolder]path = /rootcomment = root用户文件夹public = yesread only = nowritable = yesavailable = yesbrowseable = yesguest ok = yesforceuser = rootforcegroup = rootcreate mask = 0777directory mask = 0777
    • 查看 /etc/samba/smb.conf
    sudo cat /etc/samba/smb.conf
    
  3. 将系统用户添加到samba的用户,并单独设置samba的密码,独立于系统密码

    sudo smbpasswd -a root
    

    查看samba的用户

    sudo pdbedit -L
    
  4. 重启 smb, nmb 服务

    sudo systemctl restart smb nmb smb nmb
    
  5. 关闭禁用防火墙或者开启端口

    • 关闭禁用防火墙

      sudo systemctl stop firewalld ; sudo systemctl disable firewalld
      
    • 或者开启端口

      • 查看firewall默认的zone,
        一般CentOS是public, Fedora是FedoraWorkstation

        sudo firewall-cmd --get-default-zone
        
      • 查看活跃的zone, 一般就是默认zone

        sudo firewall-cmd --get-active-zones
        
      • 开放445端口的tcp
        fedora41的默认zone是: FedoraWorkstation

        sudo firewall-cmd --zone=FedoraWorkstation  --add-port=445/tcp --permanent
        sudo firewall-cmd --reload
        

        自动通过 $(sudo firewall-cmd --get-default-zone) 获取默认zone

        sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=445/tcp --permanent
        sudo firewall-cmd --reload
        
      • 开放139端口的tcp

        sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=139/tcp --permanent
        sudo firewall-cmd --reload
        
      • 开放138端口的udp

        sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=138/udp --permanent
        sudo firewall-cmd --reload
        
      • 开放137端口udp

        sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=137/udp --permanent
        sudo firewall-cmd --reload
        
      • 开放137,138的udp, 139,445的tcp

        sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=137/udp --permanent
        sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=138/udp --permanent
        sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=139/tcp --permanent
        sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=445/tcp --permanent
        sudo firewall-cmd --reload
        sudo systemctl restart firewalld
        
    • 查看开放的端口 firewall-cmd --list-ports

      sudo firewall-cmd --list-ports
      
      • 查看 public 的 zone 开放的端口 firewall-cmd --list-ports --zone=public
        sudo firewall-cmd --list-ports --zone=public
        
        如何查看firewall开放了哪些端口 笔记241129
  6. 在Windows登录
    在"文件资源管理器"输入 \\IPv4 或控制台输入 explorer \\IPv4

    如果用 IPv6
    Explorer文件资源管理器用 IPv6 访问局域网网络共享网上邻居 , 要将 ipv6 的地址格式进行转换:

    1. 将所有 :(冒号) 替换成 -(横杆,减号,负号)

    2. 在地址末尾加上 .ipv6-literal.net

      .ipv6-literal.net
      

      例如:

      fc00::102:2441:f
      对应转换为👇
      \\fc00--102-2441-f.ipv6-literal.net
      
  7. 第一次登录可能慢,甚至要多登录几次, 尝试重启AlmaLinux
    登录成功后发现不能访问/root文件夹和/home下的用户文件夹, 原因是SELinux在作怪,
    可以执行sudo setenforce 0,但重启会失效

    sudo setenforce 0  # 设置为Permissive模式 重启失效
    

    可用getenforce命令查看SELinux当前的执行模式。SELinux有三种执行模式:enforcing(强制模式)、permissive(宽容模式)和disabled(禁用模式)。

    sudo getenforce
    

    想要永久生效
    可修改编辑/etc/selinux/config文件,将SELINUX=enforcing更改为SELINUX=permissive , 或者 SELINUX=disabled, 重启生效
    用vi编辑器修改/etc/selinux/config

    sudo vi /etc/selinux/config
    

    用sed命令修改
    二选一

    • 设置 SELINUX=permissive
      ###  备份
      tempUri=/etc/selinux/config ;    sudo cp -a  $tempUri  $tempUri.$(date +%0y%0m%0d%0H%0M%0Sns%0N).bak
      ###  修改
      sudo sed -ie 's(^\s*SELINUX\s*=\s*enforcing$(SELINUX=permissive(g' /etc/selinux/config
      
    • 设置 SELINUX=disabled
      ###  备份
      tempUri=/etc/selinux/config ;    sudo cp -a  $tempUri  $tempUri.$(date +%0y%0m%0d%0H%0M%0Sns%0N).bak
      ###  修改
      sudo sed -ie 's!^\s*SELINUX\s*=\s*enforcing$!SELINUX=disabled!g' /etc/selinux/config
      

    查看/etc/selinux/config

    sudo cat /etc/selinux/config
    

    重启

    sudo systemctl reboot
    

    SELinux的 getenforce setenforce 配置文件/etc/selinux/config的 SELINUX和SELINUXTYPE

一气呵成

#!/bin/bash
###    安装samba
sudo yum install samba -y
###    备份samba配置文件
tempSmbDotConfUri=/etc/samba/smb.conf ;    sudo cp -a ${tempSmbDotConfUri} ${tempSmbDotConfUri}.$(date +%0y%0m%0d_%0H%0M%0S_ns%0N).bak
###    修改samba配置文件
sudo sed -ri 's/workgroup\s*=.*$/workgroup=WORKGROUP/g' /etc/samba/smb.confecho '[RootFolder]path = /comment = 根文件夹public = yesread only = nowritable = yesavailable = yesbrowseable = yesguest ok = yes#forceuser = root#forcegroup = rootcreate mask = 0777directory mask = 0777[RootHomeFolder]path = /rootcomment = root用户文件夹public = yesread only = nowritable = yesavailable = yesbrowseable = yesguest ok = yes#forceuser = root#forcegroup = rootcreate mask = 0777directory mask = 0777[samba]path = /home/sambacomment = samba用户文件夹public = yesread only = nowritable = yesavailable = yesbrowseable = yesguest ok = yes#forceuser = samba#forcegroup = sambacreate mask = 0777directory mask = 0777[smbpasswd]path = /home/smbpasswdcomment = smbpasswd用户文件夹public = yesread only = nowritable = yesavailable = yesbrowseable = yesguest ok = yes#forceuser = smbpasswd#forcegroup = smbpasswdcreate mask = 0777directory mask = 0777[pdbedit]path = /home/pdbeditcomment = pdbedit用户文件夹public = yesread only = nowritable = yesavailable = yesbrowseable = yesguest ok = yes#forceuser = pdbedit#forcegroup = pdbeditcreate mask = 0777directory mask = 0777'  >>  /etc/samba/smb.conf###    启用启动samba服务
sudo systemctl enable --now smb nmb###    配置防火墙
sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=137/udp --permanent
sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=138/udp --permanent
sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=139/tcp --permanent
sudo firewall-cmd --zone=$(sudo firewall-cmd --get-default-zone) --add-port=445/tcp --permanent
sudo firewall-cmd --reload
sudo systemctl restart firewalld###    配置SeLinux
sudo setenforce 0  # 设置为Permissive模式 重启失效
###  备份
tempUri=/etc/selinux/config ;    sudo cp -a  $tempUri  $tempUri.$(date +%0y%0m%0d%0H%0M%0Sns%0N).bak
###  修改
sudo sed -ie 's(^\s*SELINUX\s*=\s*enforcing$(SELINUX=permissive(g' /etc/selinux/configsudo useradd samba
sudo smbpasswd -a samba

相关文章:

AlmaLinux9.5安装samba实现与Windows文件共享 笔记250214

Fedora41安装samba实现与Windows文件共享 笔记241202 步骤: 安装samba, 并启用 smb , nmb 服务 切换阿里源(可选) ### 备份 /etc/yum.repos.d 文件夹 tempUri/etc/yum.repos.d ; sudo cp -a $tempUri $tempUri.$(date %0y%0m%0d%0H%0M%0Sns%0N).bak sed -e s|^mirrorli…...

二〇二四年终总结

写在前面 简单总结一下告诉自己,曾经活着 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树 原本应该 24 年年中的时候写 23 年年终的总结,但是一直拖着&…...

学习sql的资源:sql练习平台;在线编辑器,免费sql教程,免费sql书籍

sql练习平台 LeetCode力扣(部分免费) 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 HackerRank 解决 SQL |黑客排名 SQLPad SQL、Python 和 R 面试问题 StrataScratch StrataScratch - Analytical Questions 数据雷mur Free SQL Tutorial for Data Analysts …...

宝塔和docker的区别

宝塔面板 vs Docker:区别、场景与互补使用指南 eepseek回答宝塔和docker的区别 好的,我现在需要回答用户关于宝塔面板和Docker之间的区别的问题。首先,我需要明确这两个工具各自的定义、功能以及它们适用的场景,这样才能准确比较…...

机器学习--实现多元线性回归

机器学习—实现多元线性回归 本节顺延机器学习--线性回归中的内容,进一步讨论多元函数的回归问题 y ′ h ( x ) w ⊤ ∙ x b y^{\prime}h(x)w^\top\bullet xb y′h(x)w⊤∙xb 其中, w T ⋅ x 就是 W 1 X 1 w 2 X 2 w 3 X 3 ⋯ w N X N \text{其中,}w^\math…...

【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter2-HTML 中的 JavaScript

二、HTML 中的 JavaScript 将 JavaScript 插入 HTML 的主要方法是使用<script>元素。 <script>元素有下列 8 个属性。 async&#xff1a;可选。表示应该立即开始下载脚本&#xff0c;但不能阻止其他页面动作&#xff0c;比如下载资源或等待其他脚本加载。只对外部…...

【人工智能】释放数据潜能:使用Featuretools进行自动化特征工程

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 特征工程是机器学习流程中至关重要的一步,它直接影响模型的性能。然而,手动特征工程既耗时又需要领域专业知识。Featuretools是一个强大的…...

算法——对比A*算法与IDA*算法

A*算法与IDA*算法详细解析 1. A*算法 核心思想&#xff1a; A*算法是一种启发式搜索算法&#xff0c;结合了Dijkstra算法的最短路径保证和贪心最佳优先搜索的高效导向性。其核心是评估函数 ( f(n) g(n) h(n) )&#xff0c;其中&#xff1a; ( g(n) ): 从起点到当前节点 ( …...

GitLab CI/CD 的配置详解:从零开始使用 .gitlab-ci.yml 文件

在现代软件开发中&#xff0c;CI/CD&#xff08;持续集成与持续部署&#xff09;已成为提高开发效率和代码质量的核心实践。GitLab CI/CD 提供了强大的功能&#xff0c;帮助开发者自动化构建、测试和部署应用程序。而 .gitlab-ci.yml 文件是 GitLab CI/CD 配置的关键所在&#…...

python语言进阶之函数

目录 前言 函数的创建和调用 函数创建 调用函数 参数传递 形式参数和实际参数 位置参数 数量必须与定义时一致 位置必须与定义时一致 关键字参数 为参数设置默认值 可变参数 **parameter 返回值 变量的作用域 局部变量 全局变量 匿名函数 前言 提到函数&…...

网络安全等级保护基本要求、测评要求、高风险判定指引综合梳理

网络安全等级保护基本要求、测评要求、高风险判定指引综合梳理 等级保护基本要求、测评要求、高风险判定指引综合梳理测评要求思维导图二级三级 花了些时间把网络安全等级保护涉及的以下三份标准文件进行了整理&#xff0c;以表格的形式进行展现&#xff0c;能帮助初学者更加直…...

JSON入门略要

JavaScript对象表示法&#xff08;JavaScript Object Notation&#xff0c;JSON&#xff09;已经成为RESTful接口设计中的事实标准。 JSON数据格式使得应用程序可以通过RESTful API等方式在网络上进行数据通信。 REST: 表现层状态转化&#xff08;REpresentation State Transf…...

Python爬虫抓取数据时,如何设置请求头?

在Python爬虫中设置请求头是确保爬虫能够正常运行并获取目标数据的关键步骤之一。请求头可以帮助我们模拟浏览器行为&#xff0c;避免被目标网站识别为爬虫。以下是如何在Python爬虫中设置请求头的详细指南&#xff1a; 一、使用requests库设置请求头 requests库是Python中最…...

以若依移动端版为基础,实现uniapp的flowable流程管理

1.前言 此代码是若依移动端版为基础&#xff0c;实现flowable流程管理&#xff0c;支持H5、APP和微信小程序三端。其中&#xff0c;APP是在安卓在雷电模拟器环境下完成的&#xff0c;其他环境未测试&#xff0c;此文章中所提及的APP均指上述环境。移动端是需要配合若依前后端分…...

DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

unity学习39:连续动作之间的切换,用按键控制角色的移动

目录 1 不同状态之间的切换模式 1.1 在1个连续状态和一个连续状态之间的transition&#xff0c;使用trigger 1.2 在2个连续状态之间的转换&#xff0c;使用bool值切换转换 2 至少现在有2种角色的移动控制方式 2.1 用CharacterController 控制角色的移动 2.2 用animator…...

C++ ——构造函数

1、作用&#xff1a;创建对象时&#xff0c;给对象的属性进行初始化 2、特点 &#xff08;1&#xff09;构造函数与类同名 &#xff08;2&#xff09;如果没有显式给出构造函数&#xff0c;编译器会给出默认的构造函数&#xff08;参数为空&#xff0c;并且函数体也为空&#…...

Python实现语音识别详细教程【2025】最新教程

文章目录 前言一、环境搭建1. 下载 Python2. 安装 Python3 使用 pip 安装必要的库 二、使用 SpeechRecognition 库进行语音识别1.识别本地音频文件2.实时语音识别3. 使用其他语音识别引擎 注意事项 前言 以下是一份较为完整的 Python 语音识别教程&#xff0c;涵盖环境搭建、使…...

【第12章:深度学习与伦理、隐私—12.4 深度学习与伦理、隐私领域的未来挑战与应对策略】

凌晨三点的自动驾驶测试场,AI系统突然在暴雨中做出惊人决策——它选择撞向隔离带而不是紧急变道,因为算法推演发现隔离带后的应急车道站着五个工程师。这个惊悚的伦理困境,揭开了深度学习伦理危机最尖锐的冰山一角。 一、潘多拉魔盒已开:深度学习伦理的四大原罪 1.1 数据原…...

Django中数据库迁移命令

在 Django 中&#xff0c;数据库迁移是确保数据库结构与 Django 模型定义保持一致的重要过程。以下是 Django 中常用的数据库迁移命令&#xff1a; 1. python manage.py makemigrations 功能&#xff1a;此命令用于根据 Django 项目的模型文件&#xff08;models.py&#xff…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

flow_controllers

关键点&#xff1a; 流控制器类型&#xff1a; 同步&#xff08;Sync&#xff09;&#xff1a;发布操作会阻塞&#xff0c;直到数据被确认发送。异步&#xff08;Async&#xff09;&#xff1a;发布操作非阻塞&#xff0c;数据发送由后台线程处理。纯同步&#xff08;PureSync…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...