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

Ubuntu18.04下vsftpd限制FTP用户仅访问指定目录配置问题

现有chroot限制失效的遗漏配置项
  • 缺少chroot_list_file参数配置:仅开启chroot_list_enable=YES但未指定列表文件路径,vsftpd无法读取规则列表导致chroot逻辑失效,需补充配置chroot_list_file=/etc/vsftpd.chroot_list,该文件每行存储一个用户账号,可根据需求调整例外规则。
  • chroot目录权限不符合默认要求:vsftpd默认要求用户的chroot根目录(即用户主目录)不可拥有写入权限,否则会跳过chroot限制。你可选择将主目录权限调整为只读chmod 555 /var/ftp/ftphtm3,或添加配置allow_writeable_chroot=YES允许chroot根目录可写。
  • chroot组合逻辑配置不明确:

    chroot_local_user=YES + chroot_list_enable=YES的组合规则为:chroot_list_file内的用户不被chroot限制,其余所有本地用户均被限制在主目录。如果ftphtm3账号被误写入该列表,会直接跳过限制规则。

  • 配置修改后未重启服务:所有/etc/vsftpd.conf的修改都需要执行systemctl restart vsftpd才能生效。

无需目录绑定的实现方案

直接通过调整vsftpd配置和用户主目录即可实现需求,操作步骤如下:

  1. 清理原有绑定配置:执行umount /var/ftp/ftphtm3卸载临时绑定,若/etc/fstab中写入了永久绑定规则,同步删除对应行。
  2. 修改用户主目录为目标路径:执行usermod -d /var/www/html3 ftphtm3。
  3. 调整/etc/vsftpd.conf配置:
# 所有本地用户默认被chroot限制在主目录
chroot_local_user=YES
# 无需例外用户的话可直接关闭列表规则
chroot_list_enable=NO
# 允许chroot根目录可写(若ftp用户需要对目录有写入权限则添加)
allow_writeable_chroot=YES
# 配置目录文件默认权限(按需调整,022对应目录755、文件644)
local_umask=022
# 开启被动模式避免FileZilla连接异常
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=45000

若仅需要限制ftphtm3单个用户、其余FTP用户不受限制,可将上述前两项配置替换为:

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

执行echo "ftphtm3" >> /etc/vsftpd.chroot_list,即可仅对列表内的用户生效chroot限制。

  1. 调整目录权限:确保ftphtm3用户对/var/www/html3有对应权限,如需读写权限可执行chown -R ftphtm3:ftphtm3 /var/www/html3。
  2. 重启服务生效:执行systemctl restart vsftpd。

内容的提问来源于stack exchange,提问作者RandomFellow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:12:01