安装与配置vsftpd
在CentOS系统中,首先需要安装vsftpd(Very Secure FTP Daemon),通过以下命令安装:

sudo yum install vsftpd -y
安装完成后,建议备份原始配置文件,以防后续配置出错:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
启动vsftpd服务
安装后,需启动vsftpd服务并设置开机自启,使用以下命令:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
可通过systemctl status vsftpd检查服务状态,确保显示“active (running)”。
防火墙与SELinux配置
CentOS默认启用防火墙,需开放FTP端口(21)及被动模式端口范围(如30000-31000),执行:
sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --permanent --add-port=30000-31000/tcp sudo firewall-cmd --reload
若SELinux启用,需设置FTP策略:

sudo setsebool -P ftpd_full_access on
用户权限与目录配置
默认情况下,vsftpd限制本地用户访问,若需允许特定用户登录,编辑vsftpd.conf:
sudo vi /etc/vsftpd/vsftpd.conf
取消注释或添加以下行:
local_enable=YES write_enable=YES chroot_local_user=YES allow_writeable_chroot=YES
创建FTP专用用户并设置目录权限:
sudo useradd -m ftpuser sudo passwd ftpuser sudo chmod 755 /home/ftpuser
常见问题排查
若无法启动服务,检查日志:
sudo journalctl -u vsftpd
常见错误包括端口冲突、SELinux阻止或配置文件语法错误,可通过vsftpd -t测试配置文件语法。

FAQs
Q1: vsftpd启动失败,提示“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”如何解决?
A: 此错误因chroot目录可写导致,在vsftpd.conf中添加allow_writeable_chroot=YES,或调整目录权限为只读。
Q2: 如何限制FTP用户仅能访问其主目录?
A: 在vsftpd.conf中启用chroot_local_user=YES,并确保用户主目录权限正确(如755),若需更精细控制,可使用user_sub_token和local_root指定目录。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复