在 Linux 和 Windows 计算机之间共享文件

使用 Samba 设置跨平台文件共享。
73 位读者喜欢这篇文章。
5 tools to support distributed sysadmin teams

Opensource.com

如果您使用不同的操作系统,能够在它们之间共享文件会非常方便。本文介绍了如何使用 Sambamount.cifs 在 Linux (Fedora 33) 和 Windows 10 之间设置文件访问。

Samba 是 SMB/CIFS 协议的 Linux 实现,允许直接访问网络上共享的文件夹和打印机。Mount.cifs 是 Samba 套件的一部分,允许您在 Linux 下挂载 CIFS 文件系统。

注意:这些说明适用于在您的私有本地网络中或 Linux 主机和虚拟化 Windows 访客之间的虚拟化仅主机网络中共享文件。请勿将本文视为您公司网络的指南,因为它没有实施必要的网络安全考虑因素。

从 Windows 访问 Linux

本节介绍如何从 Windows 文件资源管理器访问用户的 Linux 主目录。

1. 安装和配置 Samba

首先在您的 Linux 系统上安装 Samba

dnf install samba

Samba 是一个系统守护进程,其配置文件位于 /etc/samba/smb.conf 中。其默认配置应该可以工作。如果不行,这个最小配置应该可以完成任务

[global]
        workgroup = SAMBA
        server string = %h server (Samba %v)
        invalid users = root
        security = user
[homes]
        comment = Home Directories
        browseable = no
        valid users = %S
        writable = yes

您可以在项目网站的 smb.conf 部分找到参数的详细描述。

2. 修改 LinuxSE

如果您的 Linux 发行版受到 SELinux 保护(如 Fedora),您必须启用 Samba 才能访问用户的主目录

setsebool -P samba_enable_home_dirs on

通过键入以下内容检查该值是否已设置

getsebool samba_enable_home_dirs

您的输出应如下所示

3. 启用您的用户

Samba 使用一组具有连接权限的用户和密码。通过键入以下内容将您的 Linux 用户添加到该组

smbpasswd -a <your-user>

系统将提示您输入密码。这是一个全新的密码;它不是您当前帐户的密码。输入您要用于登录 Samba 的密码。

要获取允许的用户类型列表

pdbedit -L -v

通过键入以下内容删除用户

smbpasswd -x <user-name>

4. 启动 Samba

由于 Samba 是一个系统守护进程,您可以使用以下命令在 Fedora 上启动它

systemctl start smb

这将为当前会话启动 Samba。如果您希望 Samba 在系统启动时自动启动,请输入

systemctl enable smb

在某些系统上,Samba 守护进程注册为 smbd

4. 配置防火墙

默认情况下,Samba 被您的防火墙阻止。通过配置防火墙,允许 Samba 永久访问网络。

您可以使用命令行执行此操作,命令如下

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

或者您可以使用 firewall-config 工具以图形方式执行此操作

5. 从 Windows 访问 Samba

在 Windows 中,打开文件资源管理器。在地址栏中,键入两个反斜杠,后跟您的 Linux 机器的地址(IP 地址或主机名)

系统将提示您输入登录信息。输入步骤 3 中的用户名和密码组合。您现在应该能够访问 Linux 机器上的主目录

从 Linux 访问 Windows

以下步骤说明如何从 Linux 访问共享的 Windows 文件夹。要实施这些步骤,您需要在 Windows 用户帐户上具有管理员权限。

1. 启用文件共享

打开网络和共享中心,方法是单击

Windows 按钮 > 设置 > 网络和 Internet

或右键单击任务栏右下角的小监视器图标

在打开的窗口中,找到您要使用的连接并记下其配置文件。我使用了 以太网 3,它被标记为公共网络

注意:如果您的 PC 经常连接到公共网络,请考虑将本地计算机的连接配置文件更改为专用

记住您的网络配置文件,然后单击更改高级共享设置

选择与您的连接对应的配置文件,然后打开网络发现文件和打印机共享

2. 定义共享文件夹

通过右键单击要共享的文件夹打开上下文菜单,导航到授予访问权限,然后选择特定人员...

检查您的当前用户名是否在列表中。单击共享将此文件夹标记为共享

您可以通过在文件资源管理器的地址栏中输入 \\localhost 来显示所有共享文件夹的列表

Shared folders

 

<p class="rtecenter"><sup>(Stephan Avenwedde, <a href="https://open-source.net.cn/%3Ca%20href%3D"https://creativecommons.org/licenses/by-sa/4.0/" rel="ugc">https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC BY-SA 4.0</a>)</sup></p>

3. 在 Linux 下挂载共享文件夹

返回到您的 Linux 系统,打开命令 shell,并创建一个新文件夹,您要在其中挂载 Windows 共享

mkdir ~/WindowsShare

挂载 Windows 共享是通过 mount.cifs 完成的,mount.cifs 应该默认安装。要临时挂载您的共享文件夹,请使用

sudo mount.cifs //<address-of-windows-pc>/MySharedFolder ~/WindowsShare/ -o user=<Windows-user>,uid=$UID

在此命令中

  • <address-of-windows-pc> 是 Windows PC 的地址信息(IP 或主机名)
  • <Windows-user> 是允许访问共享文件夹的用户(来自步骤 2)

系统将提示您输入 Windows 密码。输入密码后,您将能够使用普通的 Linux 用户访问 Windows 上的共享文件夹。

要卸载共享文件夹

sudo umount ~/WindowsShare/

您还可以在系统启动时挂载 Windows 共享文件夹。按照这些步骤配置您的系统。

总结

本文介绍了如何建立临时共享文件夹访问,每次启动后必须重新续订。修改此配置以实现永久访问相对容易。我经常在不同的系统之间切换,因此我认为设置直接文件访问非常实用。

接下来阅读什么
标签
User profile image.
Stephan 是一位技术爱好者,他欣赏开源,因为它可以深入了解事物的工作原理。Stephan 在工业自动化软件这个主要为专有领域的公司担任全职支持工程师。如果可能,他会从事基于 Python 的开源项目、撰写文章或驾驶摩托车。

2 条评论

如果所有这些设置都失败了... 只需使用简单的 U 盘或云服务即可。 :)

请记住,主机可以是服务或机器,我们不能将相同的主机名重复用于另一个服务或机器,因为这样我们会遇到服务或机器冲突。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.