温馨提示×

Debian vsftp怎么设置用户

小樊
36
2026-07-16 02:14:06
栏目: 智能运维

在 Debian 上使用 vsftpd(Very Secure FTP Daemon) 设置用户,通常分为 系统用户虚拟用户 两种。下面给你一个从零到可用的常用配置示例(以 系统用户 + 本地目录 为主,最简单也最稳定)。


一、安装 vsftpd

sudo apt update
sudo apt install vsftpd

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

sudo systemctl status vsftpd

二、创建 FTP 用户(系统用户方式)

1️⃣ 创建用户

sudo useradd -m ftpuser
sudo passwd ftpuser

2️⃣ 禁止用户 SSH 登录(可选但推荐)

sudo usermod -s /usr/sbin/nologin ftpuser

三、配置 vsftpd(核心)

编辑配置文件:

sudo nano /etc/vsftpd.conf

✅ 常用推荐配置(复制即可用)

# 基本设置
listen=YES
listen_ipv6=NO

# 禁止匿名登录
anonymous_enable=NO

# 允许本地用户登录
local_enable=YES

# 允许上传
write_enable=YES

# 本地用户权限掩码
local_umask=022

# 限制用户只能访问自己的家目录(重要)
chroot_local_user=YES

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

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

# 禁止用户列表
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

四、允许指定用户登录(白名单)

echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

只有在这个文件里的用户才能登录


五、设置用户 FTP 目录

默认目录

/home/ftpuser

自定义目录(例如 /data/ftp)

sudo mkdir -p /data/ftp
sudo chown ftpuser:ftpuser /data/ftp
sudo usermod -d /data/ftp ftpuser

六、重启 vsftpd

sudo systemctl restart vsftpd

七、防火墙(如果有)

UFW 示例:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp

如果是云服务器,还需要放行 被动模式端口(见下)。


八、被动模式(推荐)

/etc/vsftpd.conf 中添加:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙放行:

sudo ufw allow 30000:31000/tcp

九、测试连接

Linux / Windows

ftp your_server_ip

或使用 FileZilla

  • 协议:FTP
  • 加密:只使用明文 FTP
  • 用户:ftpuser
  • 密码:你设置的密码

十、常见问题

❌ 530 Login incorrect

  • 密码错误
  • shell 被禁止但没配置好
  • PAM 问题(可检查 /etc/pam.d/vsftpd

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

allow_writeable_chroot=YES

十一、进阶(可选)

如果你需要:

  • 虚拟用户(不创建系统用户)
  • 每个用户不同目录
  • SSL/TLS 加密 FTP

可以告诉我你的使用场景,我可以给你 完整虚拟用户方案FTPS 配置

需要我帮你检查当前配置吗?

0