在 Linux 上用 Samba 搭共享文件夹
搭建Samba 服务
Samba 是一种在 Linux 和 Windows 之间共享文件和打印服务的标准方法。通过配置 Samba 服务,可以在 Linux 上设置共享文件夹,使其在 Windows 上可访问。
步骤概述:
-
安装 Samba: 在 Linux 服务器上安装 Samba。
sudo apt update sudo apt install samba -
创建系统用户
首先,你需要在 Linux 系统上为访问 Samba 共享的用户创建一个系统用户。这个用户不必拥有登录系统的权限。
sudo adduser --disabled-login sambauser这里,我们创建了一个名为
sambauser的用户,并禁止该用户登录系统。 -
设置 Samba 密码
然后,为这个用户设置一个 Samba 密码。这个密码将用于从 Windows 客户端访问 Samba 共享。
sudo smbpasswd -a sambauser在提示时输入密码。这个密码是访问 Samba 共享时将需要输入的密码。
-
启用该用户的 Samba 访问
确保该用户在 Samba 中是启用状态。
sudo smbpasswd -e sambauser -
调整共享配置
接下来,修改你的 Samba 配置文件
/etc/samba/smb.conf,设置验证方式。修改或添加如下配置到你的共享部分:[NAS] path = /data read only = no browsable = yes valid users = sambauser force user = root create mask = 0777 directory mask = 0777valid users = sambauser指定了只有sambauser这个用户可以登录这个共享。force user = root指定登录成功之后以root用户身份访问这个目录
-
重启 Samba 服务:
sudo systemctl restart smbd -
在 Windows 上访问: 在文件资源管理器的地址栏输入
\\Linux服务器的IP地址\ShareName,按回车访问共享文件夹。
SMB测试
推荐安装 smbclient:
sudo apt install smbclient
或:
sudo dnf install samba-client
然后:
smbclient -L localhost -U 用户名
例如:
smbclient -L localhost -U testuser
输入 SMB 密码后,正常应该看到类似:
Sharename Type
--------- ----
public Disk
IPC$ IPC
可以继续尝试:
smbclient -L localhost -N # 匿名访问
smbclient -L //192.168.1.150 -U sambauser # 列出所有Share
smbclient //192.168.1.150/public -U sambauser # 访问指定Share
# SMB连接成功后执行ls看是否正常返回
常见问题
Windows开启 SMB功能
1、进入“控制面板”,进入“程序和功能“
2、选择“启用或关闭Windows功能”


3、在功能列表中确保选中“SMB1.0/CIFS文件共享支持”,然后确定安装,重新启动电脑即可生效。

Windows LTSC 连接SMB提示出错
在 Windows LTSC 版本上无法连接 SMB 共享目录,提示未知错误。
这是因为在 LTSC 系统上默认禁止不安全的来宾的访问,需要手动配置组策略。
-
快捷键 Win + R 运行,输入 gpedit.msc 打开本地组策略编辑器。
gpedit.msc
-
依次展开「管理模版」->「网络」->「Lanman 工作站」标签

-
将「启用不安全的来宾登陆」配置为「已启用」即可。
