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

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

在 Windows 下设置共享文件夹并配置无密码保护共享,通过 CIFS/SMB 协议在 Ubuntu 系统中挂载网络共享文件夹。解决挂载后权限不足、目录重命名冲突及用户认证问题,并通过编辑 /etc/fstab 文件实现开机自动挂载。需使用普通用户名密码而非 Everyone 以实现自动挂载功能。

橘子海发布于 2026/2/7更新于 2026/10/19113 浏览

摘要

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

1. 系统版本介绍

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

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

Win:

命令:

  • 查看 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. 结论

更多推荐文章

查看全部
  • 人工智能发展历程与现状分析
  • 基于 Kiro 和 AIClient-2-API 实现免费 Claude 模型调用
  • 基于 7 系列 FPGA 实现万兆以太网通信
  • C++多态实现深度剖析:从抽象类约束到虚函数表机制
  • OpenClaw 底层原理全解析:架构组成与执行链路
  • 无人机视角山区泥石流与滑坡图像识别数据集详解
  • 基于Spring Boot+Vue的餐饮外卖订单管理系统设计与实现
  • 前端接入腾讯云 ASR 实时语音识别实践
  • OpenRouter 实战:用一个接口调用多家 AI 模型
  • 为什么 Java 一行代码 JVM 要执行 4 条指令
  • Openclaw 与飞书多机器人配置指南
  • AI 绘画提示词工程与结构化创意引擎解析
  • Python 量化实战:AKshare 获取全市场金融数据
  • Java 短剧追剧系统架构设计与核心实现
  • 图像畸变矫正原理及 MATLAB 与 FPGA 实现
  • OpenClaw WebSocket Channel 开发实战:从零打造自定义 AI 通信通道
  • N8N 对接飞书多维表实现数据增删改查实战详解
  • PyTorch 实战——基于文本引导的图像生成技术与 Stable Diffusion 实践
  • Git Worktree 原理、实战与避坑指南
  • C 语言指针与数组的关联机制及实战应用

相关免费在线工具

  • 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