解决Ubuntu vsftpd权限问题可按以下步骤操作:
安装vsftpd:
sudo apt update && sudo apt install vsftpd
配置用户权限:
sudo useradd -m ftpuser -s /usr/sbin/nologin
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 775 /home/ftpuser/upload
修改配置文件:
编辑/etc/vsftpd.conf,关键参数:
local_enable=YES # 允许本地用户登录
write_enable=YES # 允许写入
chroot_local_user=YES # 限制用户在其主目录
allow_writeable_chroot=YES # 允许chroot环境可写
(可选)启用用户列表限制:
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO # 仅允许列表内用户登录
开放防火墙端口:
sudo ufw allow 21/tcp # 控制端口
sudo ufw allow 30000:31000/tcp # 被动模式端口范围(若启用)
sudo ufw reload
重启服务并验证:
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
使用FTP客户端(如FileZilla)测试登录及权限是否正常。
注意:避免将目录权限设为777,优先通过chown和chmod精细化控制权限,确保安全性。