在 Debian 上配置 vsftpd(Very Secure FTP Daemon) 的权限,通常涉及 系统用户权限、目录权限、vsftpd 配置参数 三部分。下面按常见使用场景说明。
sudo apt update
sudo apt install vsftpd
配置文件位置:
/etc/vsftpd.conf
编辑配置:
sudo nano /etc/vsftpd.conf
write_enable=YES
❗ 没有这一项,所有用户都不能上传/删除
anonymous_enable=NO
如果开匿名:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_enable=YES
✅ 允许系统用户登录 FTP
vsftpd 最终权限 = vsftpd 配置 + Linux 文件权限
ftpuser 一个 FTP 目录sudo useradd -m ftpuser
sudo passwd ftpuser
sudo mkdir /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 755 /home/ftpuser/ftp
755:用户可读写执行,其他人只读sudo chmod 775 /home/ftpuser/ftp/upload
chroot_local_user=YES
allow_writeable_chroot=YES
⚠ 如果只写 chroot_local_user=YES 而目录可写,会报错
sudo useradd readonly
sudo passwd readonly
目录:
sudo chown root:root /home/readonly
sudo chmod 755 /home/readonly
vsftpd:
write_enable=NO
cmds_allowed=USER,PASS,SYST,FEAT,OPTS,PORT,PASV,TYPE,CDUP,CWD,PWD,LIST,RETR,STOR,MKD
(去掉 DELE / RMD)
虚拟用户 不直接对应系统用户,权限更可控:
pam + db4如果你需要,我可以单独写一份 Debian vsftpd 虚拟用户配置教程。
/etc/passwd 中 shell 不是 /bin/bashallow_writeable_chroot=YES
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
如果你能告诉我:
我可以直接给你一份 可用的配置文件。