在 Debian 上搭建 FTP 服务器(常用的是 vsftpd),权限设置主要涉及 系统用户权限、目录权限、vsftpd 配置 三部分。下面以最常见的 vsftpd 为例说明。
sudo apt update
sudo apt install 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
否则用户可能能浏览整个系统
sudo useradd -m ftpuser
sudo passwd ftpuser
设置家目录权限(示例):
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
如果用户需要上传:
sudo chmod 775 /home/ftpuser
userlist_enable=YES
userlist_deny=NO
然后编辑:
/etc/vsftpd.userlist
加入允许的用户:
ftpuser
userlist_enable=YES
userlist_deny=YES
/etc/vsftpd.userlist 中写禁止的用户
如果你需要:
可以用 PAM + 虚拟用户(稍复杂),需要的话我可以单独写一份。
| 需求 | 设置 |
|---|---|
| 只能下载 | chmod 755 |
| 可上传 | chmod 775 |
| 禁止访问 | 不在 userlist / 无权限 |
| 锁定根目录 | chroot_local_user=YES |
sudo ufw allow 21
被动模式还需:
pasv_min_port=30000
pasv_max_port=31000
sudo ufw allow 30000:31000/tcp
sudo journalctl -u vsftpd
ls -ld /home/ftpuser
getsebool -a | grep ftp # 若启用 SELinux(Debian 默认不启用)
如果你能告诉我:
我可以直接给你一份 可复制的配置。