一、安装和启动
1.可用以下命令查询是否已安装:
#rpm -qa|grep vsftpd
vsftpd-2.0.5-10.e15
如果出现以上结果,表明已安装。如果未安装,可在Red Hat Enterprise Linux5 安装光盘中找到安装包,使用命令:
#yum install vsftpd
2.启动和关闭
启动命令为:#service vsftpd start
停止命令为:#service vsftpd stop
重启命令为:#service vsftpd restart
查询运行状态:#service vsftpd status
3、添加vsftp账号,指定账号权限
■ 添加ftp账号www,指定/home/ftp为ftpuser的宿主目录,该账户号默认不能登陆系统。
[root@localhost ~]# useradd -s /bin/nologin -d /home/ftp ftpuser 或
useradd -s /usr/sbin/nologin -d /home/ftp ftpuser
#nologin的位置通常在/usr/sbin/nologin或/sbin/nologin位置,如果指定错误则无法登陆(530等错误)。
【先查找 nologin 位置, find / -name nologin】
■ 修改账号密码。
[root@localhost ~]# passwd ftpuser
■ 修改指定目录权限。
[root@localhost ~]# chown -R ftpuser /home/ftp #-R参数:递归设置/home/ftp目录及期子目录的所有者为用户ftpuser。
■ 777授权文件
chmod -R 777 ftp
//开机启动
chkconfig vsftpd on
二、问题处理:
1、 500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp
原因:
配置文件在调用默认匿名用户anonymous时会去找ftp这个系统用户,但是ftp这个系统用户又不存在(可能被删除了)
取消匿名模式。 vi /etc/vsftpd/vsftpd.conf #修改配置文件
在vsftpd.conf中将anonymous_enable设置为NO,
anonymous_enable=NO
2、启动vsftpd服务,报错:Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details
解决:
vi /etc/vsftpd/vsftpd.conf #修改配置文件
3、500 OOPS: cannot change directory:/home/www
该错误原因是在CentOS系统下默认安装了SELinux,没有开启FTP支持,所以访问时都被阻止了,需要手动开启。
[root@localhost ~]# getsebool -a|grep ftp #查看所有ftp设置
[root@localhost ~]# setsebool ftp_home_dir 1 #setsebool -P ftp_home_dir 1 使用P参数实现重启后ftp_home_dir自动为1