在 Debian 上搭建 FTP 服务器(常用 vsftpd)时,“权限”通常包含 系统用户权限、目录权限、vsftpd 配置权限、以及 SELinux/防火墙 等部分。下面给你一个从安装到权限配置的完整说明。
sudo apt update
sudo apt install vsftpd
启动并设置开机自启:
sudo systemctl enable vsftpd
sudo systemctl start vsftpd
sudo useradd -m ftpuser
sudo passwd ftpuser
建议:不要使用 root 作为 FTP 用户
假设 FTP 根目录为 /home/ftpuser/ftp
sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 755 /home/ftpuser/ftp
✅ 推荐权限:
755644编辑配置文件:
sudo nano /etc/vsftpd.conf
# 允许本地用户登录
local_enable=YES
# 允许写操作(上传/删除)
write_enable=YES
# 本地用户限速(可选)
local_umask=022
# 锁定用户在家目录(⚠很重要)
chroot_local_user=YES
allow_writeable_chroot=YES
# 匿名用户(一般关闭)
anonymous_enable=NO
保存后重启:
sudo systemctl restart vsftpd
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
sudo mkdir /home/ftpuser/ftp/upload
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload
/etc/vsftpd.conf
chroot_local_user=YES
如果你不想给系统用户权限,可以使用 虚拟用户 + PAM
简要结构:
vftp)需要时可帮你写完整配置。
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
vsftpd 配置:
pasv_min_port=30000
pasv_max_port=31000
sudo tail -f /var/log/vsftpd.log
# 或
sudo journalctl -u vsftpd
✅ 最佳实践:
如果你能告诉我:
我可以直接给你一套可复制的配置文件。