凌峰创科服务平台

Fedora Samba服务器配置,用户权限如何设置?

Fedora 上配置 Samba 服务器完整指南

Samba 是一个在 Linux 和 Unix 系统上实现 SMB/CIFS 协议的自由软件,它能让您的 Fedora 服务器像 Windows 服务器一样,在局域网内共享文件和打印机。

Fedora Samba服务器配置,用户权限如何设置?-图1
(图片来源网络,侵删)

第一步:准备工作

在开始之前,请确保您已完成以下操作:

  1. 更新系统:确保您的 Fedora 系统是最新的。

    sudo dnf update -y
  2. 设置静态 IP 地址(推荐):为了方便客户端连接,最好为服务器配置一个静态 IP 地址,您可以通过 nm-connection-editor 图形工具或直接编辑 Netplan/NetworkManager 配置文件来实现。

  3. 配置防火墙:Samba 默认使用 sambasamba-client 服务,需要允许这些服务通过防火墙。

    Fedora Samba服务器配置,用户权限如何设置?-图2
    (图片来源网络,侵删)
    # 永久允许 samba 服务
    sudo firewall-cmd --permanent --add-service=samba
    # 重新加载防火墙以应用更改
    sudo firewall-cmd --reload
  4. SELinux 设置:Fedora 默认启用 SELinux,它可能会阻止 Samba 的正常工作,为了简化配置,我们可以将其设置为 Permissive 模式(只记录警告,不阻止操作)或 Disabled(不推荐,除非您完全了解风险)。

    • 临时设置为 Permissive(仅当前会话有效)
      sudo setenforce 0
    • 永久设置为 Permissive
      sudo nano /etc/selinux/config
      # 将 SELINUX=enforcing 改为 SELINUX=permissive
      # 保存并退出

      重启系统后,此设置才会永久生效。

    注意:生产环境中,最佳实践是保持 SELinux 为 Enforcing 模式,并使用 semanagechcon 命令为 Samba 配置正确的安全上下文,但为了本指南的简洁性,我们暂时将其设为 Permissive


第二步:安装 Samba

使用 dnf 包管理器安装 Samba 软件包。

sudo dnf install samba samba-common samba-client -y

第三步:创建共享目录和用户

  1. 创建共享目录:我们将在 /srv/samba/share 下创建一个公共共享目录,并设置正确的权限。

    # 创建目录
    sudo mkdir -p /srv/samba/share
    # 设置目录所有者为 root,组为 samba
    sudo chown -R root:samba /srv/samba/share
    # 设置目录权限,组成员可以读写和访问目录
    sudo chmod -R 2775 /srv/samba/share

    2775 中的 2 表示设置了 setgid 位,新创建的文件会自动继承父目录的组 samba,便于统一管理权限。

  2. 创建 Samba 系统用户:这些用户必须是您系统中已经存在的普通用户,我们以 fedorauser 为例(请替换为您的实际用户名)。

    # 如果用户不存在,请先创建
    # sudo useradd fedorauser
    # sudo passwd fedorauser
    # 将系统用户添加到 Samba 数据库,并设置其 Samba 专用密码
    # 此密码可以与系统登录密码不同
    sudo smbpasswd -a fedorauser

    系统会提示您输入并确认一个新的 Samba 密码。


第四步:配置 Samba (核心步骤)

Samba 的主配置文件是 /etc/samba/smb.conf,我们将使用一个文本编辑器(如 nano)来修改它。

sudo nano /etc/samba/smb.conf

打开文件后,建议先备份原始配置,然后清空文件内容,从下面开始编写,这样可以避免不必要的默认配置项干扰。

/etc/samba/smb.conf 文件内容示例:

#======================= Global Settings =======================
[global]
   # 工作组的名称,必须与您的 Windows 工作组或域名称一致
   # 查看 Windows 工作组:在 Windows 上按 `Win + R`,输入 `sysdm.cpl`,查看“计算机名”选项卡
   workgroup = WORKGROUP
   # 服务器的描述信息,会在“网络”邻居中显示
   server string = Fedora Samba Server
   # 设置日志文件的路径和级别
   log file = /var/log/samba/log.%m
   max log size = 50
   # 安全级别,我们使用最常用的 `user` 级别,即需要用户名和密码才能访问。
   # security = share # (不推荐,无需密码)
   security = user
   # 允许哪些客户端连接,默认是所有
   # hosts allow = 192.168.1. 192.168.2. 127.
   # 是否在浏览列表中可见
   # netbios name = MY-SAMBA-SERVER
#======================= Share Definitions =======================
# [共享名称] 是在 Windows 罉络中看到的共享文件夹名
[Share]
   # 共享的路径
   path = /srv/samba/share
   # 是否允许 guests (匿名用户) 访问
   guest ok = no
   # 是否允许写入
   writable = yes
   # 新创建的文件和目录的权限掩码
   # 这里的权限会受系统 umask 影响
   create mask = 0664
   directory mask = 0775
   # 共享的注释
   comment = Public Share for Everyone
# 如果您想创建一个需要特定用户才能访问的私有共享
[Private]
   path = /srv/samba/private
   valid users = fedorauser anotheruser # 只有这些用户可以访问
   writable = yes
   guest ok = no

配置完成后,保存并退出 (Ctrl+X, 然后按 Y, 最后按 Enter)。


第五步:测试并启动 Samba 服务

  1. 测试配置文件语法:在重启服务前,务必测试配置文件是否有语法错误。

    testparm

    如果输出 Load smb config files from /etc/samba/smb.confUnknown parameter encountered 等错误,请返回 smb.conf 文件检查,如果没有错误,会显示 Loaded services file OK

  2. 启动并启用 Samba 服务

    # 启动服务
    sudo systemctl start smb nmb
    # 设置为开机自启
    sudo systemctl enable smb nmb
    • smb 服务:提供文件和打印共享。
    • nmb 服务:提供 NetBIOS 名称服务,用于在局域网内广播和解析服务器名称,让 Windows 客户端能“看到”您的服务器。
  3. 检查服务状态

    sudo systemctl status smb nmb

    确保两个服务都显示为 active (running)


第六步:从 Windows 客户端访问

  1. 在文件资源管理器中访问

    • 打开 Windows 文件资源管理器。
    • 在地址栏中输入 \\<你的Fedora服务器IP地址>,然后按回车。
      • \\192.168.1.100
    • 系统会弹出身份验证窗口。
    • 输入您在第三步创建的 Samba 用户名Samba 密码fedorauser 和您设置的 Samba 密码)。
    • 登录成功后,您就可以看到 Share 共享文件夹了。
  2. 映射网络驱动器(可选)

    • 右键点击“此电脑” -> “映射网络驱动器”。
    • 选择一个驱动器盘符。
    • 文件夹输入:\\<你的Fedora服务器IP地址>\Share
    • 勾选“使用其他凭据”,然后完成。

第七步:从 Linux 客户端访问

如果您想在另一台 Linux 机器上访问 Samba 共享,可以安装 samba-client 工具。

# 在客户端机器上安装
sudo dnf install samba-client -y
  1. 使用 smbclient 命令行访问
    # 格式: smbclient //<server_ip>/<share_name> -U <username>
    smbclient //192.168.1.100/Share -U fedorauser

    登录后,您将进入一个类似 FTP 的命令行界面,可以使用 `

分享:
扫描分享到社交APP
上一篇
下一篇