在 Linux 上“限制 FTP 用户”通常指 限制其活动范围、权限、访问方式或资源,下面按常见需求分类说明,适用于 vsftpd(最常用)以及通用思路。
编辑配置文件(通常是 /etc/vsftpd/vsftpd.conf 或 /etc/vsftpd.conf):
chroot_local_user=YES
allow_writeable_chroot=YES
然后重启:
systemctl restart vsftpd
✅ 效果:用户登录后无法切换到 / 以上目录
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
在 /etc/vsftpd/user_list 中只写允许登录的用户。
userlist_enable=YES
userlist_deny=YES
在 user_list 中写禁止登录的用户。
创建专用 FTP 用户,并禁止其 shell 登录:
useradd -s /sbin/nologin ftpuser
或限制已有用户:
usermod -s /sbin/nologin username
write_enable=NO # 全局禁止写
download_enable=NO # 禁止下载(vsftpd 支持)
或者针对目录用权限控制:
chmod 500 /home/ftpuser
local_max_rate=50000 # 50KB/s
max_clients=50
max_per_ip=2
如果只是 FTP,建议:
/etc/passwd 中给 shell# /etc/ssh/sshd_config
Match User ftpuser
ForceCommand internal-sftp
ChrootDirectory /home/ftpuser
vsftpd + PAM 虚拟用户:
✅ 禁用匿名登录
anonymous_enable=NO
✅ 使用 FTPS(SSL/TLS)
✅ 定期审计 /var/log/vsftpd.log
如果你能告诉我:
我可以给你精确配置示例。