温馨提示×

Debian vsftp如何设置用户

小樊
43
2026-07-02 11:42:21
栏目: 智能运维

在 Debian 上配置 vsftpd(Very Secure FTP Daemon) 并设置 FTP 用户,一般包括以下几个步骤:安装、配置、创建/设置用户、权限控制和测试。下面给你一个常用且安全的配置示例


一、安装 vsftpd

sudo apt update
sudo apt install vsftpd

安装完成后,服务会自动启动:

sudo systemctl status vsftpd

二、备份并编辑配置文件

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf

✅ 推荐基础配置(适合本地用户登录)

# 启用本地用户登录
local_enable=YES

# 允许上传
write_enable=YES

# 本地用户限制在家目录
chroot_local_user=YES

# 允许写 chroot(Debian 必须)
allow_writeable_chroot=YES

# 禁止匿名登录
anonymous_enable=NO

# 日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

# 被动模式(建议开启)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

保存后重启服务:

sudo systemctl restart vsftpd

三、创建 FTP 用户

方式 1:使用已有系统用户(最常见)

创建新用户

sudo adduser ftpuser

设置密码:

sudo passwd ftpuser

设置 FTP 根目录(推荐)

sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 755 /home/ftpuser

⚠️ 注意chroot_local_user=YES 时,家目录不能有写权限
所以通常把可写目录放在 ftp/


方式 2:禁止用户 SSH 登录(更安全)

如果你只希望用户使用 FTP,而不能 SSH 登录:

sudo usermod -s /usr/sbin/nologin ftpuser

确保 /etc/shells 中包含:

/usr/sbin/nologin

四、防火墙设置(如果启用 UFW)

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp

五、测试 FTP 登录

本地测试

ftp localhost

或使用工具:

  • FileZilla
  • WinSCP
  • lftp

六、常见问题排查

❌ 530 Login incorrect

  • 用户名/密码错误
  • /etc/shells 不包含用户的 shell
  • /etc/ftpusers 禁止登录

查看是否被限制:

cat /etc/ftpusers

❌ 500 OOPS: vsftpd: refusing to run with writable root inside chroot

解决方法:

allow_writeable_chroot=YES

或确保家目录不可写,子目录可写。


七、虚拟用户(进阶,可选)

如果你需要 多个 FTP 用户但不创建系统用户,可以使用:

  • PAM + 虚拟用户
  • Berkeley DB

如果你需要,我可以单独给你虚拟用户配置教程


八、总结

✅ 最简单方案:

  • 安装 vsftpd
  • 创建系统用户
  • 配置 local_enable=YES
  • 限制在家目录
  • 打开被动端口

如果你告诉我:

  • 公网服务器 / 内网
  • 是否 需要匿名访问
  • 是否 多用户隔离

我可以帮你定制一套更合适的配置。

0