Ubuntu 使用 Samba 共享文件夹

Ubuntu 使用 Samba 共享 /test_shared 给 Windows 访问

适用:Ubuntu 20.04/22.04/24.04;Windows 10/11(同一局域网)

目标:在 Ubuntu 上创建并共享目录 /test_shared ,用 账号密码 从 Windows 访问、读写


一、准备环境

1)安装 Samba

bash 复制代码
sudo apt update
sudo apt install -y samba smbclient

2)创建共享目录 /test_shared

bash 复制代码
sudo mkdir -p /test_shared

如果你打算给某个用户提供读写权限,下文以 ubuntu 用户为例(替换成你的实际用户名也行)。

3)设置目录归属与权限

bash 复制代码
# 把目录所有者设置为 ubuntu(请按需替换成你的用户名)
sudo chown -R ubuntu:ubuntu /test_shared

# 允许拥有者/同组读写,目录可进入(X 会根据类型自动给目录执行位)
sudo chmod -R u+rwX,g+rwX /test_shared

二、创建 Samba 账号(与系统账号关联)

Samba 登录需要单独设置密码,但账号必须是系统里已存在的用户。

bash 复制代码
sudo smbpasswd -a ubuntu
  • 按提示输入并确认密码(可与系统密码不同)

三、配置 Samba 共享

编辑配置文件:

bash 复制代码
sudo nano /etc/samba/smb.conf

在文件 末尾 追加如下共享段(保持其他内容不变):

复制代码
[test_shared]
   comment = Test Shared Folder
   path = /test_shared
   browseable = yes
   read only = no
   guest ok = no
   valid users = ubuntu
   create mask = 0664
   directory mask = 0775

字段说明:

  • path:要共享的目录
  • guest ok = no:禁用来宾访问(更安全)
  • valid users = ubuntu:只允许 ubuntu 用户
  • create mask/directory mask:新建文件/目录默认权限

保存后校验配置并重启服务

bash 复制代码
testparm
sudo systemctl restart smbd

如果启用了 UFW 防火墙,放行 Samba:

bash 复制代码
sudo ufw allow 'Samba'
sudo ufw status

四、Linux 端自检(可选但推荐)

用本机 smbclient 测试共享是否可见、可登录:

bash 复制代码
# 列出可用共享
smbclient -L localhost -U ubuntu

# 连接共享(随后会提示输入刚设置的 Samba 密码)
smbclient //localhost/test_shared -U ubuntu

五、Windows 访问与映射网络盘

1)获取 Ubuntu 的 IP

在 Ubuntu 上:

bash 复制代码
ip a | grep -w inet

2)资源管理器访问

在 Windows 资源管理器地址栏输入:

复制代码
\\<Ubuntu_IP>\test_shared

例如:

复制代码
\\192.168.1.50\test_shared

弹出登录框后输入:

  • 用户名:ubuntu
  • 密码:刚才 smbpasswd -a ubuntu 设的 Samba 密码

3)映射为网络驱动器(可选)

  • 在"此电脑"上右键 → 映射网络驱动器
  • 选择盘符,例如 Z:
  • 文件夹填:\\192.168.1.50\test_shared
  • 勾选"登录时重新连接" → 完成

如果此前输错过凭据导致"拒绝访问",先清理旧凭据:

  • 控制面板 → 凭据管理器 → Windows 凭据:删除对应条目

  • 或命令行:

    bat 复制代码
    net use * /delete /y

相关推荐
i建模19 分钟前
如何在Arch Linux中重设忘记的root密码
linux·运维·服务器
chatexcel1 小时前
元空AI+Clawdbot:7×24 AI办公智能体新形态详解(长期上下文/自动化任务/工具粘合)
运维·人工智能·自动化
kida_yuan1 小时前
【Linux】运维实战笔记 — 我常用的方法与命令
linux·运维·笔记
@syh.2 小时前
【linux】进程控制
linux
何中应3 小时前
vmware的linux虚拟机如何设置以命令行方式启动
linux·运维·服务器
江畔何人初4 小时前
kubernet与docker的关系
linux·运维·云原生
bubuly4 小时前
软件开发全流程注意事项:从需求到运维的全方位指南
大数据·运维·数据库
百炼成神 LV@菜哥4 小时前
Kylin Linux V10 aarch64 安装启动 TigerVNC-Server
linux·服务器·kylin
佑白雪乐5 小时前
<Linux基础11集>电流+二极管+晶体管+存储器
linux
嵌入式郑工5 小时前
RK3566 LubanCat 开发板 USB Gadget 配置完整复盘
linux·驱动开发·ubuntu