在 Debian 上用 vsftpd 时,“权限”一般分三层:系统用户权限 → vsftpd 配置权限 → 目录权限。下面按常见场景给你讲清楚。
sudo apt update
sudo apt install vsftpd
配置文件位置:
/etc/vsftpd.conf
比如用户 ftpuser,家目录 /home/ftpuser
sudo adduser ftpuser
编辑 /etc/vsftpd.conf:
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 如果不加
allow_writeable_chroot=YES用户家目录 不能可写,否则登录失败
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
✅ 结果:
sudo chmod 555 /home/ftpuser
sudo mkdir /home/ftpuser/upload
sudo chmod 755 /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload
vsftpd 里加:
write_enable=YES
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
目录权限:
sudo chown ftp:ftp /srv/ftp
sudo chmod 755 /srv/ftp
如果你要 多个 FTP 账号但不用系统用户,用:
pam_userdbvirtual_users需要我单独写一份 Debian vsftpd 虚拟用户教程 也可以。
❌ 登录失败:
chroot 目录可写但没加 allow_writeable_chroot❌ 能登录但不能上传:
write_enable=NOsudo systemctl restart vsftpd
sudo systemctl enable vsftpd
如果你告诉我:
我可以直接给你一份 可直接用的配置文件。