在 Ubuntu 上搭建 FTP 服务器(常见用 vsftpd),“设权限”通常包含 系统用户/目录权限 和 vsftpd 配置权限 两部分。下面按常见场景说明。
sudo apt update
sudo apt install vsftpd
配置文件位置:
/etc/vsftpd.conf
编辑配置:
sudo nano /etc/vsftpd.conf
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 mkdir /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 755 /home/ftpuser
⚠️ 注意:
chroot 目录 不能是可写的根目录(除非 allow_writeable_chroot=YES)/home/ftpuser (755)
└── ftp (ftpuser 可写)
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
添加允许用户:
echo ftpuser | sudo tee -a /etc/vsftpd.userlist
sudo usermod -s /usr/sbin/nologin ftpuser
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
| 现象 | 原因 |
|---|---|
| 500 OOPS: chroot | 目录权限不对 |
| 无法上传 | write_enable=NO |
| 登录失败 | 用户被 userlist 拒绝 |
| 被动模式连不上 | 未开端口 |
pasv_min_port=40000
pasv_max_port=40100
并放行防火墙:
sudo ufw allow 20:21/tcp
sudo ufw allow 40000:40100/tcp
如果你能告诉我:
我可以给你一份直接可抄的配置。