CentOS FTP Server使用常见问题解答
/etc/ftpusers文件中,也会被拒绝登录;此外,用户主目录权限不足(如未设置读写权限)也会导致此错误。/etc/ftpusers文件,确保目标用户未被列入(该文件默认禁止部分系统用户登录);调整用户主目录权限,例如sudo chmod 755 /home/ftpuser(ftpuser为FTP用户名),并确保目录所有者为用户自身(sudo chown ftpuser:ftpuser /home/ftpuser)。sudo chmod 775 /home/ftpuser);若启用了SELinux,需开启FTP访问用户目录的策略:sudo setsebool -P ftp_home_dir 1(允许访问主目录),若仍无法写入,可临时开启完整FTP访问(不推荐生产环境长期使用):sudo setsebool -P allow_ftpd_full_access 1。/var/ftp)未设置正确的写权限。/etc/vsftpd/vsftpd.conf),开启匿名写入权限:anon_upload_enable=YES(允许上传)、anon_mkdir_write_enable=YES(允许创建目录);设置匿名根目录的写权限:sudo chmod 777 /var/ftp(注意:生产环境中建议限制为775并指定所有者为root:root)。sudo firewall-cmd --permanent --add-service=ftp,然后重载防火墙:sudo firewall-cmd --reload;若使用SELinux,临时设置为宽松模式测试:sudo setenforce 0,若能连接则永久修改SELinux策略(sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config);检查vsftpd服务状态:sudo systemctl status vsftpd,若未启动则启动服务:sudo systemctl start vsftpd,并设置开机自启:sudo systemctl enable vsftpd;使用netstat -antup | grep ftp检查端口是否被占用(正常应显示vsftpd进程监听21端口)。pasv_enable=YES,并设置端口范围(如pasv_min_port=10000、pasv_max_port=10100);在防火墙中开放被动模式端口范围:sudo firewall-cmd --permanent --add-port=10000-10100/tcp,然后重载防火墙:sudo firewall-cmd --reload。chroot_local_user=YES配置将用户锁定在主目录,但主目录权限设置不当(如未设置所有者为用户自身,或权限过严);allow_writeable_chroot未开启(若用户需要写入chroot目录)。sudo chown ftpuser:ftpuser /home/ftpuser),权限设置为755(sudo chmod 755 /home/ftpuser);若用户需要写入主目录,在vsftpd配置文件中添加:allow_writeable_chroot=YES,然后重启vsftpd服务:sudo systemctl restart vsftpd。sudo vsftpd /etc/vsftpd/vsftpd.conf(若有错误会提示具体行号);检查端口占用情况:sudo netstat -antup | grep 21,若端口被占用,修改vsftpd配置文件中的listen_port参数为其他端口(如2121),并在防火墙中开放新端口;查看系统日志获取详细错误信息:sudo tail -f /var/log/messages或sudo tail -f /var/log/secure,根据日志提示解决问题。