在 Ubuntu 上使用 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 # 允许匿名
匿名用户目录权限示例:
sudo chown nobody:nogroup /srv/ftp
sudo chmod 555 /srv/ftp
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 如果不加
allow_writeable_chroot=YES,用户家目录不能有写权限,否则登录失败。
假设用户是 ftpuser,家目录是 /home/ftpuser
sudo useradd -m ftpuser
sudo passwd ftpuser
设置目录权限:
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
如需上传目录:
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload
sudo chmod 755 /home/ftpuser/upload
sudo nano /etc/ftpusers
加入用户名(如 root)
userlist_enable=YES
userlist_deny=YES # 列表中的用户禁止
# userlist_deny=NO # 仅列表中的用户允许
sudo nano /etc/vsftpd.user_list
适合多个 FTP 账号但不需要系统账号:
guest_enable=YES如需要我可以单独写一篇 vsftpd 虚拟用户配置教程。
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
| 问题 | 解决 |
|---|---|
| 530 Login incorrect | 检查用户名密码、PAM |
| 500 OOPS chroot | 加 allow_writeable_chroot=YES |
| 无法上传 | write_enable=YES |
| 权限拒绝 | 检查目录 owner / chmod |
如果你能告诉我:
我可以直接给你一份可用配置文件。