在 Debian 上配置 vsftpd(Very Secure FTP Daemon) 时,“权限”通常指 用户访问权限、目录权限、匿名权限、上传/下载权限,可以从 vsftpd 配置 和 Linux 文件系统权限 两个层面来理解。下面给你一个完整、常用的设置指南。
sudo apt update
sudo apt install vsftpd
启动并设置开机自启:
sudo systemctl enable vsftpd
sudo systemctl start vsftpd
配置文件位置:
/etc/vsftpd.conf
修改后重启:
sudo systemctl restart vsftpd
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 如果只写 chroot_local_user=YES,而用户家目录可写,会报错
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
例如:
sudo mkdir -p /home/ftpusers/user1
sudo useradd -d /home/ftpusers/user1 -s /usr/sbin/nologin user1
sudo passwd user1
并设置权限:
sudo chown user1:user1 /home/ftpusers/user1
sudo chmod 755 /home/ftpusers/user1
假设用户需要上传:
sudo mkdir /home/ftpusers/user1/upload
sudo chown user1:user1 /home/ftpusers/user1/upload
sudo chmod 755 /home/ftpusers/user1/upload
✅ vsftpd 只负责是否允许写,具体能不能写,取决于 Linux 目录权限
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
匿名目录示例:
sudo mkdir /srv/ftp/pub
sudo chown ftp:ftp /srv/ftp/pub
sudo chmod 755 /srv/ftp/pub
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
编辑:
sudo nano /etc/vsftpd.user_list
加入允许的用户:
user1
user2
userlist_enable=YES
userlist_deny=YES
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
如果开启被动模式:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
sudo ufw allow 30000:31000/tcp
Debian 默认无 SELinux,可跳过。
write_enable=YESnologin 被 shell 限制allow_writeable_chroot=YESlisten=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
如果你能告诉我:
我可以给你一个 完全贴合你场景的 vsftpd 权限方案。