温馨提示×

CentOS从零开始如何设置共享文件夹

小樊
42
2025-11-16 03:55:58
栏目: 智能运维

CentOS 从零开始设置共享文件夹

一、方案选择与准备

  • 常见方案:
    • Samba/CIFS:跨平台(Windows、Linux、macOS)通用,适合办公与混合系统环境。
    • NFS:Linux/Unix 间高性能共享,适合同网段服务器与集群。
  • 准备要点:
    • root 或具有 sudo 权限的账号操作。
    • 规划共享目录(如:/shared),并为共享创建系统用户(Samba 需单独设置密码)。
    • 保持 firewalld 运行并按需放行服务或端口。

二、使用 Samba 共享文件夹(跨平台)

  • 安装组件
    • 执行:sudo yum install -y samba samba-client samba-common
  • 创建共享目录与权限
    • 执行:sudo mkdir -p /shared
    • 执行:sudo chmod 777 /shared(演示用,生产环境请按最小权限设置)
  • 备份并编辑配置文件
    • 执行:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
    • 编辑:sudo vi /etc/samba/smb.conf,在末尾添加:
      [shared]
         path = /shared
         browseable = yes
         writable = yes
         valid users = samba_user
      
  • 创建 Samba 用户并设置密码
    • 执行:sudo useradd -s /sbin/nologin samba_user(如已存在可跳过)
    • 执行:sudo smbpasswd -a samba_user
  • 启动服务并设置开机自启
    • 执行:sudo systemctl start smb
    • 执行:sudo systemctl enable smb
    • 可选:sudo systemctl start nmb && sudo systemctl enable nmb(NetBIOS 名称解析)
  • 防火墙放行
    • 执行:sudo firewall-cmd --permanent --add-service=samba
    • 执行:sudo firewall-cmd --reload
  • 本机与客户端测试
    • 本机测试:smbclient //localhost/shared -U samba_user
    • Windows 访问:在资源管理器输入 \\<CentOS_IP>\shared
    • Linux 挂载:sudo mount -t cifs //<CentOS_IP>/shared /mnt -o username=samba_user,password=<密码>
  • 常见排错
    • 无法连接:检查 firewall-cmd --list-services | grep samba 与共享名是否一致。
    • 权限问题:确认目录属主/权限与 valid users 配置匹配。

三、使用 NFS 共享文件夹(Linux/Unix 之间)

  • 安装组件
    • 执行:sudo yum install -y nfs-utils
  • 创建共享目录与权限
    • 执行:sudo mkdir -p /shared
    • 执行:sudo chmod 777 /shared(演示用)
  • 配置导出(/etc/exports)
    • 编辑:sudo vi /etc/exports,添加:
      /shared  192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
      
    • 使配置生效:sudo exportfs -rav
  • 启动服务并设置开机自启
    • 执行:sudo systemctl start nfs-server
    • 执行:sudo systemctl enable nfs-server
    • 执行:sudo systemctl start rpcbind && sudo systemctl enable rpcbind
  • 防火墙放行(推荐按服务放行)
    • 执行:sudo firewall-cmd --permanent --add-service=nfs
    • 执行:sudo firewall-cmd --permanent --add-service=mountd
    • 执行:sudo firewall-cmd --permanent --add-service=rpc-bind
    • 执行:sudo firewall-cmd --reload
  • 客户端挂载与测试
    • 安装客户端:sudo yum install -y nfs-utils
    • 创建挂载点:sudo mkdir -p /mnt/nfs_shared
    • 挂载:sudo mount -t nfs <NFS服务器IP>:/shared /mnt/nfs_shared
    • 验证:ls /mnt/nfs_shared
  • 常见排错
    • 出现 “access denied by server while mounting”:检查 /etc/exports 网段、权限与防火墙是否放行 NFS 相关服务。

四、虚拟机场景的共享文件夹

  • VMware 共享文件夹(VMware Tools)
    • 安装增强功能后在客户机查看共享名:vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse
    • 指定共享名挂载:/usr/bin/vmhgfs-fuse .host:/<共享名> /mnt/hgfs -o subtype=vmhgfs-fuse
  • VirtualBox 共享文件夹
    • 设备 → 共享文件夹 → 添加共享(固定分配),共享名例如 SharedFolder
    • 安装增强功能后挂载:sudo mount -t vboxsf SharedFolder /mnt/hgfs
  • 提示:不同版本与内核模块加载方式可能略有差异,优先使用官方增强功能与对应工具。

五、安全与权限建议

  • 最小权限原则:避免使用 777,按业务设置目录属主/属组与权限(如 755/750),Samba 侧用 valid userswrite list 精确授权。
  • 账户管理:Samba 使用独立的 smbpasswd,不必赋予系统登录权限(可用 -s /sbin/nologin)。
  • 防火墙:仅放行必要服务(Samba 或 NFS 相关),变更后执行 firewall-cmd --reload 验证。
  • SELinux:如访问异常,可先临时 setenforce 0 验证是否为 SELinux 限制,再按策略调整(不建议长期关闭)。

0