跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Ubuntu 与 Windows 系统实现共享文件夹

在 Windows 和 Ubuntu 双系统环境下实现共享文件夹的方法。主要流程包括在 Windows 端设置共享文件夹并配置无密码保护共享,在 Ubuntu 端安装 cifs-utils 并通过 mount 命令挂载 SMB 共享。文中详细解决了挂载后无写入权限、目录重命名冲突、指定用户认证以及开机自动挂载等常见问题,重点讲解了通过 fstab 配置文件实现开机自动挂载及安全凭证管理方案。

Ne0发布于 2026/3/26更新于 2026/9/475 浏览

摘要

本文基本思路是在 Windows 系统下设置共享文件夹,然后在 Ubuntu 系统中通过 CIFS/SMB 协议挂载网络共享文件夹,最终实现 Ubuntu 和 Win 系统共享文件夹操作和开机自动挂载功能。具体步骤如下:

1. 系统版本介绍

首先介绍使用的 ubuntu 系统和 win 系统版本: Ubuntu: 24.04.2 Win: win11 家庭中文版

如何查看自己的系统版本号呢? Ubuntu:

命令:

  • 查看 Ubuntu 操作系统的详细信息
lsb_release -a 
  • 弹窗显示 Windows 版本及内部版本号
winver 

2. Win 系统设置共享文件夹

首先创建个空的文件夹用作共享文件夹,并进入文件夹属性设置:

这里本文设置的共享文件夹名为"Share",在'属性' -> "共享"中设置要共享的用户,为了方便这里添加 Everyone 作为新的共享用户,在后续 Ubuntu 挂载时可以跳过用户名和密码要求。并且设置用户的属性为读取/写入。

共享完成后会弹窗显示共享路径如图:

这里需要记住路径中最后的文件夹名称,即"Share"。

接着在高级共享中确认用户 Everyone 的权限有读取/写入和完全控制。

在这里已经基本设置完共享文件夹了,接着需要进一步设置 Win 系统的网络和共享策略。 打开控制面板,选择网络和共享中心,选择更改高级共享设置,在所有网络中设置无密码保护的共享。其他的网络也都选择启动共享。这样就能正常使用网络共享功能了。

3. Ubuntu 系统挂载共享文件夹

首先本文是通过 CIFS/SMB 协议来挂载网络共享文件夹,需要安装 cifs-utils 软件包,可以直接在终端中通过如下命令安装:

sudo apt-get install cifs-utils 

下一步创建一个新的目录用来挂载 Windows 系统的共享文件夹,可以直接创建,也可以在终端中用命令创建,为了方便我创建在当前用户目录下:

mkdir ~/my_share 

或者通过 root 权限创建目录:

sudo mkdir ~/my_share 

这两个命令的区别在于 root 权限创建的目录当前用户只能访问不能修改文件。

接着在终端挂载共享文件夹,这里需要用到 Win 系统主机的 IP 地址,那么怎么知道我 Win 系统的主机地址呢? 可以在 Win 系统 cmd 终端中通过命令 ipconfig 来查看。我们需要的是其中的 IPv4 地址, 关键词:IPv4 地址

ipconfig 

比如我的 IPv4 地址为:192.168.1.1

也可以在挂载之前查看自己的 IP 地址是否能正确连接,在 Ubuntu 终端中:

ping 192.168.1.1 

如果能正确连接则会有 ping 的输出。

根据电脑的 IPv4 地址和共享文件夹名称,在 Ubuntu 系统终端中输入如下命令:

sudo mount -t cifs //192.168.1.1/Share ~/my_share 

请诸位更改为自己的 IP 地址和名称。

此时便能成功连接到共享文件夹,如果在连接过程中仍提示需要输入 Win 系统的用户密码,说明 Win 系统默认设置了安全策略的强制验证机制,对于来宾用户仍需验证密码。出于安全考虑,这里不推荐修改这个强制验证机制,乖乖输入密码进行验证即可。

成功挂载共享文件夹之后,在 Ubuntu 系统对应挂载目录下便能显示共享文件夹的内容了。

也可以在终端中检查是否成功挂载共享文件夹:

df -h 

这里初步实现了挂载共享文件夹,但是仍然存在一些小问题。在下一章中详细了解。

4. 共享文件夹中遇到的问题

本章简单列出了我在共享文件夹中遇到的问题,并给出解决办法,并在最后实现了开机自动挂载功能。

(1)为什么我挂载的文件夹只能访问文件,不能写入文件?

这是因为使用 sudo 挂载共享文件夹时,只有 root 用户才有读写权限,而挂载目录的归属用户和归属组只有访问权限:

解决办法是在挂载的时候显示地指定挂载目录的归属用户和归属组并且赋予其读写权限,因此挂载命令修改如下:

sudo mount -t cifs //192.168.1.1/Share ~/my_share \ 
-o uid=$(id -u),gid=$(id -g),dir_mode=0777,file_mode=0777 

如果现在的目录 my_share 已经挂载完成,但是没有写入权限,记得先卸载现在的挂载点,再重新挂载并指定权限:

sudo umount ~/my_share 
sudo mount -t cifs //192.168.1.1/Share ~/my_share \ 
-o uid=$(id -u),gid=$(id -g),dir_mode=0777,file_mode=0777 

现在实现了对共享文件夹的双向读取、写入操作了。

(2)我想对挂载目录重命名,但是提示无法重命名,有进程正在使用它。

这是因为该目录仍处于挂载状态,需要先卸载挂载点,重命名后再挂载。

sudo umount ~/my_share 
mv ~/my_share ~/new_share 
sudo mount -t cifs //192.168.1.1/Share ~/new_share \ 
-o uid=$(id -u),gid=$(id -g),dir_mode=0777,file_mode=0777 

(3)我不想用 Everyone 来共享了,我想通过已经有的用户来共享文件夹,怎么做?

在 Ubuntu 终端挂载文件夹的时候指定用户名和密码即可:

sudo mount -t cifs //192.168.1.1/Share ~/new_share \ 
-o username=Windows 用户名,password=Windows 用户名的密码, \uid=$(id -u),gid=$(id -g),dir_mode=0777,file_mode=0777 

请诸位自行改为自己的用户名和密码。

如果不想在命令行中显示地指定用户名和密码,为了确保密码安全,可以将用户名和密码写入隐藏文件,挂载时由隐藏文件来指定用户名和密码:

  • 创建隐藏文件
sudo touch /etc/.smbcredentials 
  • 设置隐藏文件权限为仅允许所有者读写:
sudo chmod 600 /etc/.smbcredentials 
  • 将用户名和密码写入隐藏文件
sudo gedit /etc/.smbcredentials 

请诸位自行改为自己的用户名和密码。 挂载命令修改如下:

sudo mount -t cifs //192.168.1.1/Share ~/new_share \ 
-o credentials=/etc/.smbcredentials, \uid=$(id -u),gid=$(id -g),dir_mode=0777,file_mode=0777 

如果不知道自己电脑有哪些用户名,可以在 Windows 中用管理员权限运行 powershell 终端: 按下 win+X,选择 Windows 终端(管理员),输入如下命令:

Get-LocalUser

该命令会列出本地计算机上的所有用户账户。

(4)为什么我每次启动 Ubuntu 系统都要重新挂载啊,好麻烦,怎么才能开机自动挂载呢?

可以通过/etc/fstab 文件来配置开机自动挂载。

  • 在终端中打开/etc/fstab 文件
sudo gedit /etc/fstab 
  • 在文件的最后添加如下命令:
//192.168.1.1/Share ~/new_share cifs credentials=/etc/.smbcredentials,iocharset=utf8,vers=3.0,_netdev,auto,dir_mode=0777,file_mode=0777 00

其中: cifs 指定使用 CIFS/SMB 协议挂载 Windows 共享 credentials=/etc/.smbcredentials 从指定文件读取用户名和密码 iocharset=utf8 支持中文等特殊字符(考虑到用户名和密码包含中文和特殊字符等情况) vers=3.0 强制使用 SMB3.0 协议(兼容性最佳) _netdev 等待网络就绪后再挂载 auto 系统启动时自动挂载 dir_mode=0777,file_mode=0777 设置目录和文件权限为全开放 0 0 禁用文件系统备份和启动检查

结论

至此,Ubuntu 与 Windows 系统共享文件夹的功能完成了,每次启动 Ubuntu 系统都能自动挂载共享文件夹。需要特别注意的是,因为 Win 系统设置了安全策略的强制验证机制,如果用 Everyone 中的匿名用户来挂载共享文件夹,由于该机制需要验证用户密码,导致无法实现开机自动挂载,因此开机自动挂载需要换为自己的普通用户名和密码。

目录

  1. 摘要
  2. 1. 系统版本介绍
  3. 2. Win 系统设置共享文件夹
  4. 3. Ubuntu 系统挂载共享文件夹
  5. 4. 共享文件夹中遇到的问题
  6. 结论

更多推荐文章

查看全部
  • Linux Shell 变量的定义与使用方法
  • Redis 数据结构 Set 实战:过滤用户注册重复提交信息
  • C++ 测试框架 Catch2 快速上手指南
  • AI产品经理核心能力与学习路径指南
  • Facefusion:开源 AI 换脸工具功能解析与使用指南
  • 从后端到前端:AI Agent 跨语言全栈项目实战记录(Java + Python + Vue3)
  • 基于 Python 的 CCS 自动项目生成与编译工具实现
  • 二分查找实战:旋转数组最小值与缺失数字求解
  • NIC400 生成流程解析(八)微架构配置与互联设计
  • Linux 基础:冯诺依曼架构与进程管理
  • Spring AI 入门:DeepSeek 集成、角色设定与流式输出
  • Linux poll 多路复用:select 的改进与遗留问题
  • Yolo11 基于DroneVehicle数据集的无人机视角下车辆目标检测
  • Linux poll 多路复用:select 的改良版及其局限
  • Windows 下 Pandas 安装踩坑实录与最佳实践
  • DevEco Studio 同步云函数与云数据库至本地工程
  • Git 安装、SSH Key 配置与国内镜像加速指南
  • ToDesk 集成 AI 助手 ToClaw:零门槛接入工作流
  • Kimi K2.5 多模态与编程能力实测
  • 基于 Java 的家政服务管理系统的设计与实现

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online