当前位置: 首页 > 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 = workgroup
       	security = user
    

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

    1. 设置共享目录, 这里设置了根目录, 在底部加入
      开头可以有空格或制表符,也可以没有, 等号之间可以有空格,也可以没有
      • 开头单 tab 版
      [RootFolder]
      	path = /
      	comment = 根文件夹
      	public = yes
      	read only = no
      	writable = yes
      	available = yes
      	browseable = yes
      	guest ok = yes
      	#forceuser = root
      	#forcegroup = root
      	create mask = 0777
      	directory mask = 0777
      
      [RootHomeFolder]
      	path = /root
      	comment = root用户文件夹
      	public = yes
      	read only = no
      	writable = yes
      	available = yes
      	browseable = yes
      	guest ok = yes
      	#forceuser = root
      	#forcegroup = root
      	create mask = 0777
      	directory mask = 0777
      
      
      • 开头四空格版
      ### 四空格版
      [RootFolder]
          path = /
          comment = 根文件夹
          public = yes
          read only = no
          writable = yes
          available = yes
          browseable = yes
          guest ok = yes
          forceuser = root
          forcegroup = root
          create mask = 0777
          directory mask = 0777
      
      [RootHomeFolder]
          path = /root
          comment = root用户文件夹
          public = yes
          read only = no
          writable = yes
          available = yes
          browseable = yes
          guest ok = yes
          forceuser = root
          forcegroup = root
          create mask = 0777
          directory 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.conf


echo '

[RootFolder]
	path = /
	comment = 根文件夹
	public = yes
	read only = no
	writable = yes
	available = yes
	browseable = yes
	guest ok = yes
	#forceuser = root
	#forcegroup = root
	create mask = 0777
	directory mask = 0777

[RootHomeFolder]
	path = /root
	comment = root用户文件夹
	public = yes
	read only = no
	writable = yes
	available = yes
	browseable = yes
	guest ok = yes
	#forceuser = root
	#forcegroup = root
	create mask = 0777
	directory mask = 0777


[samba]
	path = /home/samba
	comment = samba用户文件夹
	public = yes
	read only = no
	writable = yes
	available = yes
	browseable = yes
	guest ok = yes
	#forceuser = samba
	#forcegroup = samba
	create mask = 0777
	directory mask = 0777

[smbpasswd]
	path = /home/smbpasswd
	comment = smbpasswd用户文件夹
	public = yes
	read only = no
	writable = yes
	available = yes
	browseable = yes
	guest ok = yes
	#forceuser = smbpasswd
	#forcegroup = smbpasswd
	create mask = 0777
	directory mask = 0777

[pdbedit]
	path = /home/pdbedit
	comment = pdbedit用户文件夹
	public = yes
	read only = no
	writable = yes
	available = yes
	browseable = yes
	guest ok = yes
	#forceuser = pdbedit
	#forcegroup = pdbedit
	create mask = 0777
	directory 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/config


sudo useradd samba
sudo smbpasswd -a samba


相关文章:

  • Spring Boot 常用依赖详解:如何选择和使用常用依赖
  • 20250213刷机飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1
  • Box Loss:目标检测中精准框定的秘密武器
  • 自动化测试基本流程
  • RabbitMQ解耦订单模块
  • 在 Android 中实现 H5 文件下载功能:跨版本文件存储机制解析
  • 使用数据库sqlite 筛选人脸信息
  • Tomcat添加到Windows系统服务中,服务名称带空格
  • FreeRTOS低功耗总结
  • 【进阶】JVM篇
  • Kernel之Tcpdump和Netfilter
  • CVE-2022-41352 漏洞分析与利用
  • 基于SpringBoot的在线交通服务管理系统
  • 持有无人机飞手执照,会组装调试维修入伍参军技术详解
  • 104、二叉树的最大深度
  • 同步buck型降压DCDC芯片外围电路详解
  • 一款利器提升 StarRocks 表结构设计效率
  • 图片旋转方向分类:从零开始构建深度学习模型
  • 10、《Thymeleaf模板引擎:动态页面开发全攻略》
  • 如何有效防止TikTok多店铺入驻时IP关联问题?
  • 家电维修担心遇“李鬼”?上海推动“物业+专业服务”进社区
  • 中美经贸高层会谈将在午餐后继续
  • 让“五颜六色”面孔讲述上海故事,2025年上海城市推荐官开启选拔
  • 玉渊谭天丨一艘航母看中国稀土出口管制为何有效
  • 上海交大:关注到对教师邵某的网络举报,已成立专班开展调查
  • 英国和美国就关税贸易协议条款达成一致