要在局域网中让Windows、macOS或其他Linux设备像访问本地磁盘一样打开Ubuntu文件夹,必须手动配置Samba:安装samba及相关工具,创建共享目录并设775权限,编辑smb.conf添加共享段(含force user关键项),用smbpasswd为现有用户设密码,testparm验证后重启并启用smbd/nmbd服务。

要在局域网中让 Windows、macOS 或其他 Linux 设备像访问本地磁盘一样打开 Ubuntu 的文件夹,必须在 Ubuntu 上开启 Samba 文件共享服务——它不是装完就自动可用的,需要手动创建共享目录、配置权限规则、设置认证账号,并确保守护进程正确运行。
安装 Samba 服务与依赖工具
打开终端,执行以下命令:
sudo apt update && sudo apt install -y samba samba-common-bin ntfs-3g
这一步必须同时安装 【samba-common-bin】,否则后续运行 smbpasswd 命令会提示“command not found”。ntfs-3g 是为后续挂载 NTFS 硬盘准备的,即使当前没用到也建议一并装上,避免后期扩展时反复重装。
创建共享目录并设置 Linux 层权限
在终端中执行:
mkdir -p ~/samba_share
sudo chmod -R 775 ~/samba_share
sudo chown -R $USER:$USER ~/samba_share
注意:不能直接用 chmod 777。775 已足够让同组用户写入,又保留基本安全性;而 777 会导致 Samba 在某些版本(如 Ubuntu 24.04+)下拒绝启动,报错 “invalid security context”。你当前用户必须是该目录的所有者,否则 Samba 进程(以 nobody 或你的用户身份运行)将无法读取内容。
编辑 smb.conf 配置文件
执行:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf
滚动到底部,添加以下段落(把 your_username 替换为你实际的用户名,例如 lhy 或 ubuntu):
[MyShare]
comment = Personal File Share
path = /home/your_username/samba_share
browseable = yes
writable = yes
valid users = your_username
create mask = 0644
directory mask = 0755
force user = your_username
其中 【force user】 是关键项:它强制所有网络访问都以你的用户身份操作文件,绕过 nobody 权限混乱问题。没有这一行,Windows 写入的新文件可能属主为 nobody,导致你本机无法修改或删除。
设置 Samba 用户密码并重启服务
第一步:为系统中已存在的用户注册 Samba 密码(不能是新创建的无登录能力用户):
sudo smbpasswd -a your_username
按提示输入两次密码(可与系统密码不同,但建议记牢)。
第二步:测试配置语法是否正确:
testparm
如果输出末尾显示 “Loaded services file OK.” 就说明配置无误;若报错,返回上一步修改 smb.conf。
第三步:重启服务使配置生效:
sudo systemctl restart smbd nmbd
第四步:设为开机自启(防止重启后共享失效):
sudo systemctl enable smbd nmbd











