Debian系统使用vsftpd实现多用户管理,步骤如下:
-
安装vsftpd
sudo apt update && sudo apt install vsftpd -
配置基础权限
编辑配置文件/etc/vsftpd.conf,启用本地用户登录、写权限及chroot限制:local_enable=YES write_enable=YES chroot_local_user=YES allow_writeable_chroot=YES -
创建系统用户
为每个FTP用户创建系统账户(可禁止SSH登录):sudo adduser ftpuser1 # 创建用户 sudo passwd ftpuser1 # 设置密码 sudo usermod -s /sbin/nologin ftpuser1 # 禁止SSH登录(可选) sudo chown -R ftpuser1:ftpuser1 /home/ftpuser1 # 设置家目录权限 sudo chmod 755 /home/ftpuser1 -
(可选)虚拟用户管理
- 创建虚拟用户数据库:
sudo touch /etc/vsftpd/virtual_users.txt echo "user1:password1" | sudo tee -a /etc/vsftpd/virtual_users.txt sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db - 配置PAM认证:
编辑/etc/pam.d/vsftpd,添加:auth required pam_userdb.so db=/etc/vsftpd/virtual_users account required pam_userdb.so db=/etc/vsftpd/virtual_users - 启用虚拟用户:
在/etc/vsftpd.conf中设置:guest_enable=YES guest_username=ftpuser virtual_use_local_privs=YES user_sub_token=$USER local_root=/home/$USER/ftp
- 创建虚拟用户数据库:
-
重启服务生效
sudo systemctl restart vsftpd -
测试连接
使用FTP客户端(如FileZilla)输入用户名/密码登录,验证是否限制在各自家目录。
说明:
- 系统用户适合需要独立权限的场景,虚拟用户适合批量管理且无需本地shell访问的用户。
- 可通过
max_clients、max_per_ip等参数控制并发连接数。 - 确保防火墙开放FTP端口(默认21)。