撰于 阅读 27

解决 ImmortalWrt 路由器网络共享权限问题

在配置 ImmortalWrt 路由器以实现网络共享时,确保正确设置文件系统权限是关键。以下是对您描述问题的分析和解决方案的详细步骤:

问题描述

当您在 ImmortalWrt 路由器上挂载新分区 /dev/mmcblk0p7 到 /data 目录后,尝试通过 Windows 访问该目录的 SMB 共享时,可能会遇到访问被拒绝或没有权限的错误。尽管路由器连接 USB 存储设备并共享时没有问题,但新挂载的分区权限设置限制了 SMB 服务用户的访问。

问题分析

新挂载的分区默认的文件系统权限限制了 SMB 服务用户的访问。SMB 服务通常以一个非 root 用户(例如 nobody)运行,但新分区的文件和目录的所有者通常是 root,并且权限设置较为严格,导致 SMB 服务用户无法读取或写入。

解决步骤

  1. SSH 登录路由器:使用 SSH 客户端(例如 MobaXterm_Portable)连接到 ImmortalWrt 路由器。
  2. 测试权限

    • 临时赋予最高权限(用于测试):

      chmod 777 /data
      chmod 777 /data/lost+found  #如果存在lost+found目录,也需要修改
    • 如果测试访问成功,说明是权限问题,则需要安全配置权限。
  3. 更改目录所有者和所属组

    chown -R nobody:nogroup /data
  4. 设置合适的目录权限

    chmod 775 /data
  5. 确认 lost+found 目录权限:通常 lost+found 目录不需要共享,保持默认权限即可。如果需要共享,参照上述步骤对 lost+found 目录进行权限更改。
  6. 验证权限

    ls -l /data
  7. 检查 SMB 服务配置:登录 ImmortalWrt 的 LuCI 管理界面,检查 SMB 服务的配置:

    • 确保共享路径指向 /data
    • 确认访问权限设置允许你的 Windows 用户访问(或允许匿名访问)。
    • 确认用户账户配置正确(如果需要)。
  8. 重启 SMB 服务或路由器

    /etc/init.d/samba restart
  9. 在 Windows 上测试访问:在 Windows 资源管理器中,输入 \<路由器IP地址> 或 \<路由器主机名> 尝试访问共享文件夹。例如 \192.168.10.1

使用到的命令总结

  • SSH 连接:

    ssh root@<路由器IP地址>
  • 修改目录权限(临时测试用,高风险!):

    chmod 777 /data
  • 更改目录所有者和所属组:

    chown -R nobody:nogroup /data
  • 设置合适的目录权限(安全!):

    chmod 775 /data
  • 查看目录权限:

    ls -l /data
  • 重启 samba 服务(如果使用 samba):

    /etc/init.d/samba restart

注意事项

  • chmod 777 的风险:chmod 777 赋予所有用户读、写、执行权限,在生产环境中非常危险。只用于临时测试,确认是权限问题后,务必使用更安全的权限设置。
  • chmod 775 /datachmod 777 /data 更安全。让所有者和组具有读、写和执行权限,而其他用户具有读和执行权限,但没有写入权限。

额外排查

  • 防火墙设置:确保路由器和 Windows 防火墙允许 SMB 流量通过(端口 445 等)。
  • SMB 版本协商:确认 Windows 和路由器支持相同的 SMB 协议版本(路由器网络共享常规设置,勾选 “允许旧协议与身份验证(不安全)”)。
  • 网络发现:确保 Windows 上的

评论已关闭