You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SFTP专属用户无法查看已配置公共读取权限目录下文件的问题咨询

SFTP专属用户无法查看已配置公共读取权限目录下文件的问题咨询

看起来你碰到了一个典型的Linux权限+SFTP Chroot配置的坑,我来帮你分析下问题所在和解决办法:

首先,你对Match user优先级高于Match group的理解是完全正确的,所以当前用户确实会被Chroot到指定的独立目录,这部分配置没问题。

核心问题出在目录权限的细节上:

  • 你提到upload目录的权限是774,对应的其他用户权限是r--(只有读权限,没有执行权限)。在Linux里,要进入目录并查看其中的文件,必须拥有该目录的执行权限(x位)——没有x权限的话,哪怕有读权限,也没法遍历目录里的内容,所以SFTP客户端执行ls时会返回空结果但不报错。
  • 另外还要确认Chroot的根目录(也就是/media/pi/128db83f-859d-48dc-a784-4337c53c736f/username)的权限是否符合要求:SSH的Chroot机制要求这个目录必须是root用户所有,且不能给组或其他用户开放写权限,建议设置为755(rwxr-xr-x),否则用户可能连根目录的内容都看不到。

给你几个具体的操作步骤来修复:

  1. 先给upload目录添加其他用户的执行权限:

    chmod o+x /media/pi/128db83f-859d-48dc-a784-4337c53c736f/username/upload
    

    修改后upload目录的权限会变成775,其他用户就拥有了读+执行权限,就能正常查看目录内的文件了。

  2. 检查并修复Chroot根目录的权限和所有者:
    先执行命令查看当前状态:

    ls -ld /media/pi/128db83f-859d-48dc-a784-4337c53c736f/username
    

    如果输出里的所有者不是root:root,执行下面的命令修改:

    chown root:root /media/pi/128db83f-859d-48dc-a784-4337c53c736f/username
    

    如果权限不是755,执行:

    chmod 755 /media/pi/128db83f-859d-48dc-a784-4337c53c736f/username
    
  3. 最后重启sshd服务确保配置生效:

    sudo systemctl restart sshd
    

做完这些操作后,再用该用户登录SFTP试试,应该就能看到upload目录里的文件了。

备注:内容来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 08:33:00