引言
这应该也是个比较常见的需求,最近刚好就用到了,特在此记录一下。
这篇随笔目的是:
- 将 Windows 的文件共享到 Ubuntu 中
aim:方便将 Windows 本地文件工程转移到 Ubuntu
- 将 Ubuntu 的文件共享到 Windows 中
aim:方便 Windows 某些程序方便定位某些位于 Ubuntu 上目标文件夹的路径
参考文章
【详细步骤】Ubuntu安装Samba服务及配置共享文件夹
Ubuntu共享文件夹的创建和使用
Ubuntu22.04设置共享文件夹
Windows 文件共享到 Ubuntu
步骤一:设置 Windows 下的共享文件
我使用的是 VMware 这款虚拟机平台(其他的应该也差不多),操作如下:
- 右键虚拟机 -> 设置
- 选项 -> 共享文件夹 -> 添加 -> 选择 Windows 下的一个文件夹
步骤二:将共享文件夹挂载在 Ubuntu 下
- 安装/更新工具包
- // 以管理员权限更新系统软件包索引
- sudo apt update
-
- // 安装 VMware Tools 的开源替代版 open-vm-tools(实现虚拟机与主机的基础交互 / 共享功能)
- sudo apt install open-vm-tools
-
- // 更新 FUSE 版本
- sudo apt-get install fuse
复制代码 - 共享文件的文件夹位置在/mnt/hgfs/目录下,假如没有这个目录,就创建一个
- 敲指令进入此目录,并进行挂载
- // 进入 /mnt/hgfs/ 目录
- cd /mnt/hgfs/
-
- // 通过 VMware 的 hgfs 工具将主机所有共享文件夹挂载到虚拟机的/mnt/hgfs目录
- sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other,uid=1000,gid=1000,umask=022
-
- // allow_other:允许普通用户访问挂载目录
- // uid=1000:将挂载目录的文件所有者设为 UID=1000 的普通用户(避免仅 root 可访问,可通过`id`命令查看)
- // gid=1000:将挂载目录的文件所属组设为 GID=1000 的用户组
- // umask=022:设置挂载目录的默认权限(让普通用户可读可写,其他用户只读)
复制代码 - 设置开机自动挂载
- // 打开开机配置文件夹,编辑开机自动执行的命令
- sudo nano /etc/rc.local
- // 在配置文件夹中输入,即可完成开机自动挂载共享文件夹:
- sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other,uid=1000,gid=1000,umask=022
复制代码 可以看到,已经挂载成功:
Ubuntu 文件共享到 Windows
步骤一:安装 samba 工具,设置共享目录的读写权限
- // 以管理员权限更新系统软件包索引
- sudo apt update
- // Samba 服务的主程序(实现 Linux 与 Windows 的文件共享)
- // Samba 的通用配置文件和工具(提供共享配置的基础依赖)
- // Samba 的客户端工具(用于在 Linux 终端测试 / 访问远程共享目录)
- sudo apt-get install samba samba-common smbclient
- // 将home设置为共享
- sudo chmod 777 /home
复制代码 步骤二:samba 配置
- 添加 samba 用户,并设置密码
- // 输入两次密码
- sudo smbpasswd -a 用户名
复制代码 - 使用 nano 修改 samba 配置文件
- // 个人习惯用 nano
- sudo nano /etc/samba/smb.conf
-
- 添加:
- [share]
- comment = share folder # 共享描述
- browseable = yes # 允许网络中可见该共享
- path = /home # 共享文件夹的实际路径
- create mask = 0700 # 新建文件的默认权限(仅文件所有者可读/写/执行)
- directory mask = 0700 # 新建文件夹的默认权限(仅文件夹所有者可读/写/执行)
- valid users = shf # 仅允许xxx用户访问该共享
- force user = shf # 强制将共享内文件的所有者设为xxx(避免权限混乱)
- force group = shf # 强制将共享内文件的所属组设为xxx
- public = yes # 允许匿名访问(注:与valid users冲突,实际仅shf可访问)
- available = yes # 启用该共享(设为no则禁用)
- writable = yes # 允许对共享目录进行写入/修改/删除操作
复制代码 如图,将其添加到此文件最后的位置:
- 重启samba服务器
- sudo service smbd restart
复制代码 - 查看主机静态 IP 并测试是否能 Ping 通
由于之前已经配置好了简单的三网段,可以参考这篇文章:
【Ubuntu】Ubuntu 虚拟机配置三网段(桥接-WIFI、仅主机、桥接-开发板)
查看 IP 地址:返回如下图,其中192.168.184.184则是我给仅主机设置的静态 IP 地址,待会要用到。
- // 输入:
- ping -c 3 192.168.184.1
- 返回:
- PING 192.168.184.1 (192.168.184.1) 56(84) bytes of data.
- 64 bytes from 192.168.184.1: icmp_seq=1 ttl=128 time=0.378 ms
- 64 bytes from 192.168.184.1: icmp_seq=2 ttl=128 time=0.423 ms
- 64 bytes from 192.168.184.1: icmp_seq=3 ttl=128 time=0.438 ms
- --- 192.168.184.1 ping statistics ---
- 3 packets transmitted, 3 received, 0% packet loss, time 2050ms
- rtt min/avg/max/mdev = 0.378/0.413/0.438/0.025 ms
复制代码 - 测试 Samba 共享是否正常
- 输入:
- smbclient -L //localhost/home -U 用户名
- 输入密码后即可返回:
- Sharename Type Comment
- --------- ---- -------
- home Disk home guest share
- print$ Disk Printer Drivers
- IPC$ IPC IPC Service (ubuntu-skyrim server (Samba, Ubuntu))
- SMB1 disabled -- no workgroup available
复制代码 - Windows 操作挂载共享文件夹
右键此电脑,选择映射网络驱动。
选择一个驱动器,这里我选择了 H盘(由于我已经配置过了,所以后面会显示我的静态 IP 地址和共享文件夹),文件夹那里根据示例来填写即可:- \\192.168.184.184\share
- 注意这里 IP 地址后面好像只能填 share,我这里填写 home 不行。
- 填写完后输入你的 Ubuntu 用户名和密码即可。
复制代码
- 打开此电脑,查看共享文件夹
看到在网络位置多了一个盘,就说明挂载成功了。
博客导航
博客导航
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |