当前位置: 首页 > 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…...

大模型为什么越来越“听话”?一文讲透强化学习、SFT、DPO

很多人学大模型时&#xff0c;会听到三个词&#xff1a;SFT、强化学习、DPO。它们看起来很高级&#xff0c;其实核心问题很简单&#xff1a;怎么把一个只会“续写文字”的大模型&#xff0c;训练成一个真正能回答问题、听懂指令、符合人类偏好的 AI 助手。OpenAI 的 InstructGP…...

告别Win32DiskImager:用dd命令在Ubuntu下给开发板烧录U-Boot的保姆级教程

告别Win32DiskImager&#xff1a;用dd命令在Ubuntu下给开发板烧录U-Boot的保姆级教程 在嵌入式开发的世界里&#xff0c;U-Boot就像是一把万能钥匙&#xff0c;没有它&#xff0c;再强大的开发板也无法启动。传统上&#xff0c;很多开发者习惯在Windows环境下使用Win32DiskImag…...

Applite:3分钟掌握macOS应用管理,告别复杂命令行的终极指南

Applite&#xff1a;3分钟掌握macOS应用管理&#xff0c;告别复杂命令行的终极指南 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为macOS应用安装和管理而头疼吗&#x…...

KH Coder终极指南:3分钟掌握零代码文本分析的秘密武器

KH Coder终极指南&#xff1a;3分钟掌握零代码文本分析的秘密武器 【免费下载链接】khcoder KH Coder: for Quantitative Content Analysis or Text Mining 项目地址: https://gitcode.com/gh_mirrors/kh/khcoder 还在为海量文本数据感到无从下手吗&#xff1f;想从成千…...

二向箔压缩测试极限挑战

一、从科幻到现实&#xff1a;二向箔压缩测试的概念溯源刘慈欣科幻巨著《三体》中&#xff0c;二向箔作为宇宙规律武器&#xff0c;能将三维空间及物质不可逆坍缩为二维平面&#xff0c;其核心逻辑是“降维”“压缩”与“信息损耗”。当我们以软件测试从业者的视角审视这一概念…...

Electron-React-Boilerplate云原生应用:终极部署与扩展指南

Electron-React-Boilerplate云原生应用&#xff1a;终极部署与扩展指南 【免费下载链接】electron-react-boilerplate A Foundation for Scalable Cross-Platform Apps 项目地址: https://gitcode.com/gh_mirrors/el/electron-react-boilerplate Electron-React-Boilerp…...

基于Git与Markdown构建开发者知识库:从原理到实践

1. 项目概述&#xff1a;一个面向开发者的个人知识管理工具最近在整理自己过去几年的技术笔记和项目心得时&#xff0c;发现了一个非常普遍但又棘手的问题&#xff1a;信息太散了。代码片段在Gist里&#xff0c;项目总结在Notion里&#xff0c;临时想法在备忘录里&#xff0c;而…...

DeepSeek-V4-pro 接入 Claude Code 教程

本教程介绍了如何将 DeepSeek 的最新模型&#xff08;V4 Flash / V4 Pro&#xff09;通过 API 的方式接入 Claude Code&#xff0c;打造极具性价比的本地 AI 智能代理&#xff0c;并解锁百万级上下文与最高思考等级。 核心亮点 绕过官方模型限制&#xff1a;无订阅也可使用 C…...

3个核心技巧:掌握企业微信消息推送的Wecom酱解决方案

3个核心技巧&#xff1a;掌握企业微信消息推送的Wecom酱解决方案 【免费下载链接】wecomchan 微信推送服务Server酱的开源替代。通过企业微信向微信推送消息的配置文档、直推函数和可自行搭建的在线服务代码。 项目地址: https://gitcode.com/gh_mirrors/we/wecomchan …...

AI代理工作流框架Primer:结构化引导AI编码,从模糊想法到可运行软件

1. Primer项目概述&#xff1a;用AI代理构建真实软件的“脚手架”如果你和我一样&#xff0c;尝试过让AI编码助手&#xff08;比如Claude Code、Cursor、Codex&#xff09;去构建一个完整的项目&#xff0c;大概率会遇到一个共同的困境&#xff1a;任务描述太模糊&#xff0c;A…...