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

相关推荐
工藤新一¹4 小时前
Linux —— 虚拟进程地址空间
linux·运维·服务器·c/c++·虚拟进程地址空间
Aspiresky4 小时前
浅析Linux内核scatter-gather list实现
linux·dma·scatter/gather
奔跑吧 android5 小时前
【linux kernel 常用数据结构和设计模式】【数据结构 3】【模拟input子系统input_dev和input_handler之间的多对多关系】
linux·数据结构·input·kernel·input_dev·input_handler·input_handle
再难也得平5 小时前
Linux初级篇
linux·运维·服务器
小猫挖掘机(绝版)6 小时前
通过tailscale实现一台电脑上vscode通过ssh连接另一台电脑上的VMware Linux 虚拟机
linux·windows·vscode·ubuntu·ssh
attitude.x6 小时前
Swift 协议扩展与泛型:构建灵活、可维护的代码的艺术
运维·服务器·网络
ajassi20006 小时前
开源 C++ QT Widget 开发(十三)IPC通讯--本地套接字 (Local Socket)
linux·c++·qt·开源
止观止6 小时前
GitHub自动化利器:Probot框架实战指南
运维·自动化·github
方先森有点懒6 小时前
CentOS 7.2 虚机 ssh 登录报错在重启后无法进入系统
linux·运维·centos·ssh