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 启用了防火墙(如 ufwfirewalld),需开放 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 共享文件夹

  1. 获取 Linux 设备 IP:在 Linux 终端执行 ip addr 查看(如 192.168.1.100)。
  2. 在 Windows 中访问:
    • 打开“文件资源管理器”,在地址栏输入 \\192.168.1.100\WorkShare(替换为实际 IP 和共享名);
    • 弹出认证窗口时,输入 Samba 用户名(如 user1)和密码;
    • 成功访问后,可将共享映射为网络驱动器(右键“映射网络驱动器”,选择盘符,输入 \\192.168.1.100\WorkShare)。

若出现错误:"不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接"
image

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

posted @ 2025-12-05 16:18  ﹄重噺,学  阅读(1)  评论(0)    收藏  举报