Linux共享文件夹给window访问
第一步,安装依赖
sudo apt install samba
检查smbd和nmbd服务是否可用
使用以下命令来检查smbd.service和nmbd.service两个服务状态
systemctl status smbd.service
systemctl status nmbd.service
如果服务是stop的状态,那么使用以下命令来启动和开机自启动
systemctl start smbd.service
systemctl enable smbd.service
systemctl start nmbd.service
systemctl enable nmbd.service
检查用户是否加入用户组
groups
没有加入用命令加入:
usermod -a -G sambashare 用户名
检查是否设置了共享密码
sudo smbpasswd -a 用户名
成功设置了samba密码,假如过了很久之后你忘记samba密码了呢
可以使用以下命令重置
sudo smbpasswd -x earthbrain # 删除现有用户
sudo smbpasswd -a earthbrain # 重新添加用户
确保已经启用
sudo smbpasswd -e earthbrain
验证用户存在
sudo pdbedit -L -v earthbrain
设置共享文件夹
net usershare add "共享名" /home/kylin/文件名 "备注名" Everyone:R guest_ok=y
如果要设置密码的话,参考以下命令:
net usershare add "共享名" /home/kylin/文件名 "备注名" "用户名:F" guest_ok=n
如:
net usershare add "code" /media/code "code" "brain:F" guest_ok=n
这里的参数如下:
| Everyone:R | 设置Everyone用户为只读权限 |
|---|---|
| Everyone:F | 设置Everyone用户为可写权限 |
| Everyone:D | 设置Everyone用户为拒绝权限 |
| guest_ok=y | 允许匿名访问 |
|---|---|
| guest_ok=n | 不允许匿名访问 |
删除也很简单:
net usershare list:查看当前所有共享目录net usershare delete 共享名称:删除共享目录
重启 Samba 服务:
sudo systemctl restart smbd nmbd
开放防火墙端口
若 Linux 启用了防火墙(如 ufw 或 firewalld),需开放 SMB 相关端口:
-
UFW(Debian/Ubuntu)
sudo ufw allow samba # 允许 Samba 服务(自动开放 137/138 UDP,139/445 TCP) sudo ufw reload -
Firewalld(RHEL/CentOS)
sudo firewall-cmd --add-service=samba --permanent sudo firewall-cmd --reload
从 Windows 访问 Linux 共享文件夹
- 获取 Linux 设备 IP:在 Linux 终端执行
ip addr查看(如192.168.1.100)。 - 在 Windows 中访问:
- 打开“文件资源管理器”,在地址栏输入
\\192.168.1.100\WorkShare(替换为实际 IP 和共享名); - 弹出认证窗口时,输入 Samba 用户名(如
user1)和密码; - 成功访问后,可将共享映射为网络驱动器(右键“映射网络驱动器”,选择盘符,输入
\\192.168.1.100\WorkShare)。
- 打开“文件资源管理器”,在地址栏输入
若出现错误:"不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接"

net use 查看连接;net use * /delete 断开所有连接,重试

浙公网安备 33010602011771号