温馨提示×

如何限制linux ftpserver用户

小樊
54
2026-10-11 03:26:40
栏目: 智能运维

在 Linux 上“限制 FTP 用户”通常指 限制其活动范围、权限、访问方式或资源,下面按常见需求分类说明,适用于 vsftpd(最常用)以及通用思路。


一、限制用户只能访问自己的家目录(禁锢用户)

vsftpd

编辑配置文件(通常是 /etc/vsftpd/vsftpd.conf 或 /etc/vsftpd.conf):

chroot_local_user=YES
allow_writeable_chroot=YES

然后重启:

systemctl restart vsftpd

✅ 效果:用户登录后无法切换到 / 以上目录


二、只允许部分用户登录 FTP

白名单方式

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

创建专用 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 用户使用 SFTP(SSH)

如果只是 FTP,建议:

  • 不在 /etc/passwd 中给 shell
  • 或在 SSH 中限制:
# /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


如果你能告诉我:

  • 使用的 FTP 软件(vsftpd / proftpd / pure-ftpd)
  • 想限制的是「目录 / 权限 / 用户范围 / 带宽」

我可以给你精确配置示例。

0 踩