跳过内容

Samba Windows 文件共享

介绍

如果您曾经使用过 Windows 系统,您可能了解 SMB(服务器消息块)用于文件共享。如果您是一位经验丰富的 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 共享(注意:用运行 Samba 的机器的 IP 地址或 FQDN 替换 SERVER_IP

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

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

Fedora 40 Nautilus showing our Samba Share

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

结论

虽然 SMB 以以 Microsoft 为中心而闻名,但它是一种行业标准,您的 Samba 共享可以从 Linux、Mac、BSD 甚至移动设备访问。所以恭喜您,您现在正在共享服务器上的文件!

作者:Neel Chauhan

贡献者:Steven Spencer, Ganna Zhyrnova