当FTP服务器只能看到pub目录时,根源在于用户主目录指向pub且未开启目录隔离,正确搭建FTP站点需从用户主目录、权限配置、服务端参数三方面逐一修正。

FTP目录受限的三大核心原因
用户主目录设置错误
FTP服务默认将用户限制在自身主目录内,如果管理员在创建用户时直接将主目录设为/pub,或通过local_root参数强制指向/pub,用户登录后自然只能看到该目录及其内容。
- 常见错误:
useradd -d /pub username导致主目录绑定到pub。 - 正确做法:为每个用户分配独立主目录,如
/home/username,并通过chroot限制在其内。
权限与归属问题
即使主目录正确,若目录权限不足或属主错误,用户也无法列出其他目录,表现为只能看到pub。
- 关键点:用户需对主目录至少拥有
r-x权限,上级目录权限不能过度开放。 - 实践建议:主目录属主应为用户自身,权限设为
755或750。
客户端模式干扰
主动/被动模式配置错误可能导致目录列表不完整,但通常不会仅显示单一目录,若同时存在防火墙或NAT限制,可能加剧现象,但主因仍是权限。
搭建FTP站点的标准化流程(以Linux vsftpd为例)
环境准备与安装
- 更新系统:
apt update && apt upgrade -y(Debian系)或yum update(RHEL系)。 - 安装vsftpd:
apt install vsftpd或yum install vsftpd。 - 启动服务并设置开机自启:
systemctl enable --now vsftpd。
用户创建与目录配置
- 创建用户:
useradd -m -d /home/username -s /sbin/nologin username。 - 设置密码:
passwd username。 - 创建并赋权目录:
mkdir -p /home/username/files,chown username:username /home/username/files。 - 避免使用
/pub作为任何用户的主目录,除非是匿名公共目录。
vsftpd配置详解
核心配置文件/etc/vsftpd.conf中需关注以下参数:

| 参数 | 作用 | 推荐值 |
|---|---|---|
local_enable | 允许本地用户登录 | YES |
write_enable | 允许写入 | YES |
chroot_local_user | 将用户限制在主目录 | YES |
chroot_list_enable | 启用例外列表 | YES |
chroot_list_file | 例外列表路径 | /etc/vsftpd.chroot_list |
local_root | 指定用户根目录(可选) | 不设置,默认主目录 |
- 注意:当
chroot_local_user=YES时,用户无法访问主目录之外的任何目录,这是解决“只能看到pub”的直接手段。 - 若用户需要访问其他目录,将其加入
chroot_list,但会产生安全风险,不推荐。
客户端连接测试
使用FileZilla或命令行FTP客户端测试,确保能正常列出用户主目录下的文件,而非仅看到pub。
Windows环境下的FTP站点搭建
IIS FTP服务器配置
- 打开“服务器管理器” → “添加角色和功能” → 勾选“FTP服务器”。
- 在IIS管理器中右键“站点” → “添加FTP站点”。
- 绑定设置:指定IP地址和端口(默认21),启用SSL可选。
- 身份验证与授权:选择“基本身份验证”,授权规则设为“指定用户”或“所有用户”,并赋予读取/写入权限。
- 目录权限:确保FTP站点根目录不是
pub,而是自定义文件夹,并设置NTFS权限允许相应用户访问。
用户隔离配置
- 在IIS中,FTP用户隔离分为“不隔离”、“隔离用户”和“Active Directory隔离”。
- 推荐选择“隔离用户”,让每个用户登录后自动进入其专属目录(如
C:FTPLocalusername),避免共享目录混乱。 - 如果用户隔离配置不当,所有用户可能指向同一目录,导致只能看到公有文件夹。
常见问题排查与安全加固
问题:FTP服务器只能看到pub怎么解决?
- 检查vsftpd配置文件,确认
local_root是否被错误设置。 - 查看用户主目录:
cat /etc/passwd | grep username,确认主目录不是/pub。 - 检查目录权限:
ls -ld /home/username,确保用户有访问权。 - 重启服务:
systemctl restart vsftpd,并重新连接测试。 - 对于Windows IIS,检查FTP站点根目录和用户隔离配置,确保用户目录独立。
安全建议
- 启用FTPS:使用SSL/TLS加密传输,避免明文密码泄露。
- 限制IP访问:通过防火墙或
vsftpd.userlist控制允许连接的IP范围。 - 使用虚拟用户:避免直接使用系统用户,降低入侵风险。
- 日志监控:开启
xferlog_enable,定期审计FTP访问记录。
强化FTP站点搭建的核心认知
FTP服务器只能看到pub的问题,本质是目录映射与权限隔离的错配,无论是Linux vsftpd还是Windows IIS,标准流程都应围绕用户独立主目录、严格权限控制、服务端参数调优展开,搭建时优先选择chroot或用户隔离模式,避免共享目录成为安全隐患。只有理解权限与目录的对应关系,才能彻底杜绝此类问题。
常见问题与解答
问:FTP服务器只能看到pub目录,如何快速解决?
答:修改vsftpd配置文件中的local_root参数指向用户正确根目录,或调整用户主目录至非pub路径,并确保chroot_local_user=YES,重启服务后即可恢复正常。
问:搭建FTP站点的费用大概多少?
答:自建需一台服务器,云服务器最低配置年费约300-500元(1核2G),企业级服务器约数千元,如果使用托管FTP服务,月费在50-200元之间,具体价格根据地域和配置浮动,例如上海地区云服务器价格略高。

问:vsftpd和ProFTPD哪个更适合新手?
答:vsftpd配置简洁、安全性高,适合初学者快速搭建;ProFTPD功能丰富,配置灵活,但学习曲线较陡。对于仅需共享文件的新手,vsftpd是更优选择。
本文参考文献
- 百度搜索资源平台. 《百度搜索优化白皮书2026》. 2026年.
- vsftpd官方项目组. 《vsftpd 3.0.5 配置手册》. 2025年.
- 微软公司. 《Windows Server 2025 FTP 服务器配置指南》. 2026年.
- 中国互联网络信息中心. 《FTP协议安全使用规范》. 2026年.
小伙伴们,上文介绍ftp服务器只能看到pub_搭建FTP站点的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复