在 Debian 系统上设置 FTP 目录,通常包括安装 FTP 服务、创建目录、配置用户权限、设置目录路径等步骤。下面以最常用、稳定的 vsftpd 为例说明。
sudo apt update
sudo apt install vsftpd
安装完成后:
sudo systemctl enable vsftpd
sudo systemctl start vsftpd
例如你想把 FTP 根目录设为 /srv/ftp:
sudo mkdir -p /srv/ftp
sudo chown nobody:nogroup /srv/ftp
sudo chmod 555 /srv/ftp
匿名用户通常只能读,不能写
sudo mkdir -p /srv/ftp/upload
sudo chown ftp:ftp /srv/ftp/upload
sudo chmod 755 /srv/ftp/upload
sudo useradd -m -d /srv/ftp/user1 -s /usr/sbin/nologin user1
sudo passwd user1
sudo chown -R user1:user1 /srv/ftp/user1
sudo chmod 750 /srv/ftp/user1
编辑配置文件:
sudo nano /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/srv/ftp
user_sub_token=$USER
local_root=/srv/ftp/$USER
pasv_min_port=40000
pasv_max_port=50000
保存后重启:
sudo systemctl restart vsftpd
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
ftp localhost
或使用 FileZilla:
服务器IPuser1| 需求 | 做法 |
|---|---|
| 匿名 FTP | anonymous_enable=YES |
| 限制用户只在自己目录 | chroot_local_user=YES |
| 多用户不同目录 | local_root=/srv/ftp/$USER |
| 只读 FTP | 不设置 write_enable=YES |
如果你有具体需求(比如:匿名只读、多用户隔离、Web 目录 FTP、Docker 环境),可以告诉我,我可以给你更精确的配置方案。