在 Ubuntu 上使用 vsftpd 设置权限,通常涉及系统用户权限、vsftpd 配置、目录权限三个方面。下面按常见场景给你一套清晰做法。
sudo apt update
sudo apt install vsftpd
sudo nano /etc/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 用户只能访问自己的家目录(推荐)
chroot_local_user=YES
# 允许 chroot 目录可写(Ubuntu 新版必须)
allow_writeable_chroot=YES
# 被动模式(云服务器必开)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
保存后重启:
sudo systemctl restart vsftpd
sudo useradd -m ftpuser
sudo passwd ftpuser
sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 755 /home/ftpuser
⚠️ 注意:
/home/ftpuser 不能有写权限(vsftpd 安全要求)ftpchroot_local_user=YES
allow_writeable_chroot=YES
sudo groupadd ftpgroup
sudo usermod -aG ftpgroup user1
sudo usermod -aG ftpgroup user2
sudo chown -R root:ftpgroup /srv/ftp
sudo chmod 775 /srv/ftp
sudo usermod -s /usr/sbin/nologin ftpuser
并在 vsftpd.conf:
write_enable=NO
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo systemctl status vsftpd
sudo tail -f /var/log/vsftpd.log
ls -ld /home/ftpuser
vsftpd 权限 = 配置文件控制行为 + Linux 目录权限控制实际访问
如果你告诉我:
我可以给你一份精准配置。