跳至内容

Samba Windows 文件共享

简介

如果您曾经处理过 Windows 系统,您可能知道 SMB (Server Message Block) 用于文件共享。如果您是一位经验丰富的 Linux 管理员,您很可能听说过 Samba。如果您没有听说过,Samba 是事实上的开源 SMB 实现,用于从 Linux 机器到 Windows 网络启用文件共享和 Active Directory 访问。

安装

您需要使用 dnf 安装 Samba

dnf install -y samba

设置共享

首先,创建一个您想与 Windows 客户端共享的目录

mkdir /var/store

接下来,为 /var/store 目录设置 SELinux 标签

semanage fcontext -a -t samba_share_t  "/var/store(/.*)?"
restorecon -Rv /var/store

/var/store 替换为您要共享的目录。

现在配置 Samba

vi /etc/samba/smb.conf

smb.conf 文件中,导航到文件底部并插入以下内容

[Share]
        path = /var/store
        browseable = yes
        writable = no
        read only = yes
        guest ok = yes

如果您不了解以上选项,它们是:

  • path 是我们正在共享的目录。将其设置为您相应的目录(在我们的例子中是 /var/store)。
  • browseable 用于允许客户端浏览访问。如果您想禁止浏览,请将其设置为 no
  • writable 用于允许客户端写入访问。如果您想允许写入访问,请将其设置为 yes
  • read only 将共享标记为只读。如果您想允许写入或执行访问,请将其设置为 no
  • guest ok 用于允许未经身份验证的用户访问我们的共享。如果您想拒绝访客,请将其设置为 no

要测试配置,您可以运行以下命令

testparm

启用 Samba

一旦配置测试通过,在 firewall-cmd 中打开 Samba 端口

firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

接下来,您可以启用 Samba

systemctl enable --now smb nmb

访问 Samba 共享

您可以使用以下 URI 访问 Samba 共享(注意:将 SERVER_IP 替换为您运行 Samba 的机器的 IP 地址或 FQDN)

  • Windows: \\SERVER_IP
  • Linux 或 Mac: smb://SERVER_IP

作者家庭网络上的 SERVER_IP172.20.0.100,因此虽然说明根据操作系统有所不同,但作者将从他们的 Fedora 40 笔记本电脑访问新共享。

Fedora 40 Nautilus showing our Samba Share

服务器上可访问的所有文件在客户端机器上也可访问。

结论

虽然 SMB 有一个以微软为中心的声誉,但它是行业标准,并且您的 Samba 共享可以从 Linux、Mac、BSD 甚至移动设备访问。所以恭喜您,您现在正在共享您的服务器文件!

作者:Neel Chauhan

贡献者:Steven Spencer, Ganna Zhyrnova