1.检查linux是否已安装vsftpd
rpm -qa vsftpd
如果没安装则执行
yum install -y vsftpd
安装完成
2.启动vsftp
Service vsftpd start--启动
Service vsftpd stop --停止
Service vsftpd restart--重启
3.ftp匿名用户的登入名:ftp(anonymous)密码为空,目录为/var/ftp,只有下载权限,没有上传,创建和删除等权限
4.创建ftp用户(虚拟用户)
[root@tjyjs4zletlenginer201 yum.repos.d]# useradd -d /opt/csv_data -s /sbin/nologin gbase
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
设置密码
[root@tjyjs4zletlappandcontroller2 vsftpd]# passwd gbase
Changing password for user gbase.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully
5.配置vsftpd.conf
[root@vmware1 vsftpd]# vim /etc/vsftpd/vsftpd.conf
内容(根据自身情况使用):
anonymous_enable=NO #不允许匿名用户登陆
local_enable=YES #vsftpd所在系统的用户可以登录vsftpd
write_enable=YES #允许使用任何可以修改文件系统的FTP的指令
local_umask=002 #匿名用户新增文件的umask数值
anon_upload_enable=NO #匿名用户不可以上传文件
anon_mkdir_write_enable=NO #匿名用户不可以修改文件
xferlog_enable=YES #启用一个日志文件,用于详细记录上传和下载。
use_localtime=YES #使用本地时间而不是GMT
vsftpd_log_file=/var/log/vsftpd.log #vsftpd日志存放位置
dual_log_enable=YES #用户登陆日志
connect_from_port_20=YES #开启20端口
xferlog_file=/var/log/xferlog #记录上传下载文件的日志
xferlog_std_format=YES #记录日志使用标准格式
idle_session_timeout=600 #登陆之后超时时间60秒,登陆之后,一分钟不操作,就会断开连接。
chroot_local_user=YES #用于指定用户列表文件中的用户,是否允许切换到上级目录
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES #开启监听
pam_service_name=vsftpd.vu #验证文件的名字
userlist_enable=YES #允许由userlist_file指定文件中的用户登录FTP服务器
tcp_wrappers=YES #支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
guest_enable=YES #起用虚拟用户
guest_username=taokey #虚拟用户名
#user_config_dir=/etc/vsftpd/vsftpuser #虚拟用户配置文件路径
local_root=/usr/local/ftpFiles #自定义ftp上传路径(注意文件夹权限)
pasv_min_port=35000
pasv_max_port=45000
pasv_enable=YES
pasv_promiscuous=YES
anon_other_write_enable=YES
7.创建chroot_list文件(允许登入ftp用户)
cd /etc/vsftpd
touch chroot_list
echo gabse >>chroot_list
8.启动vsftpd
[root@localhost /]# service vsftpd start
备注:
一、ftp vsftpd 530 login incorrect 的N种情况
1.密码错误
2.检查/etc/vsftpd/vsftpd.conf
[root@ftpgs ~]# vim /etc/vsftpd/vsftpd.conf
看下面配置
local_enable=YES
pam_service_name=vsftpd //这里重要
pam_service_name=ftp
userlist_enable=YES
3.检查/etc/pam.d/vsftpd
vim /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so
二、vsftpd FTP 500 OOPS:child died
1.[root@ftpgs ~]# vim /etc/vsftpd/vsftpd.conf
增加下面行
pasv_promiscuous=YES
重启ftp:service vsftpd restart
2.如果上面解决不了
查看SELinux状态
sestatus -b|grep ftp
[root@localhost vsftpd]# sestatus -b|grep ftp
allow_ftpd_anon_write off
allow_ftpd_full_access off
allow_ftpd_use_cifs off
allow_ftpd_use_nfs off
ftp_home_dir off
ftpd_connect_db off
ftpd_use_fusefs off
ftpd_use_passive_mode off
httpd_enable_ftp_server off
tftp_anon_write off
tftp_use_cifs off
tftp_use_nfs off
在出现的结果中可以看到
ftp_home_dir off
tftpd_disable_trans off
把其中之一设置为on
setsebool -P ftp_home_dir on