在 Debian 上搭建 FTP 服务器(常见如 vsftpd)并“加权限”,通常包含 用户权限、目录权限、FTP 配置权限 三部分。下面以 vsftpd(最常用) 为例,系统性说明。
sudo apt update
sudo apt install vsftpd
sudo useradd -m ftpuser
sudo passwd ftpuser
建议:
- 不要用 root 登录 FTP
- 可禁止 shell 登录(更安全)
sudo usermod -s /usr/sbin/nologin ftpuser
假设 FTP 根目录是 /srv/ftp:
sudo mkdir -p /srv/ftp
sudo chown ftpuser:ftpuser /srv/ftp
sudo chmod 755 /srv/ftp
常见权限说明:
| 权限 | 含义 |
|---|---|
| 755 | 所有者可读写执行,其他只读 |
| 775 | 组内可写 |
| 700 | 仅自己可见 |
配置文件位置:
/etc/vsftpd.conf
local_enable=YES
write_enable=YES
不开启
write_enable=YES,用户 永远不能上传
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 不配置 allow_writeable_chroot 会导致登录失败
sudo nano /etc/vsftpd.user_list
写入:
ftpuser
配置:
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
anonymous_enable=YES
anon_root=/srv/ftp/public
sudo mkdir -p /srv/ftp/public
sudo chmod 755 /srv/ftp/public
sudo ufw allow 21
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
sudo ufw allow 30000:31000/tcp
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
| 需求 | 操作 |
|---|---|
| 用户不能上传 | write_enable=YES |
| 用户乱跑目录 | chroot_local_user=YES |
| 多用户共享目录 | 建组 + chmod 775 |
| 只允许某用户 | userlist_deny=NO |
| 禁止某用户 | userlist_deny=YES |
ftpuser 上传权限sudo chown ftpuser:ftpuser /srv/ftp
sudo chmod 755 /srv/ftp
vsftpd.conf:
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
如果你用的是 proftpd / pure-ftpd,或想要:
可以告诉我你的具体需求,我可以直接给你完整配置。