准备工作:
检查下是否安装了vsftpd,db4-utils
方法:
rpm -qa | grep vsftpd
rpm -qa | grep db4
开始安装:
安装vsftpd,方法:yum -y install vsftpd
安装db4-utils;方法:yum -y install db4-utils
开始设置vsftpd:
anonymous_enable=YES/NO 是否允许匿名用户访问
chroot_list_enable=YES 限定用户不可以离开主目录
chroot_list_file=/etc/vsftpd/chroot_list
loca_enable=YES/NO 本地用户是否可以访问 注:如果为NO
则所有虚拟用户都将不能访问原因:虚拟用户访问在主机上其实是以本地用户访问的
pam_service_name=vsftpd pam认证文件名 在/etc/pam.d/vsftpd
guest_enable=YES 启用虚拟用户功能
guest_username=vsftpd 指定虚拟用户的宿主用户
user_config_dir=/etc/vsftpd/vuser_conf 设置虚拟用户个人vsftp的服务配置文件
listen_port=21000 修改默认的端口
vuser_conf文件夹,文件配置样例:
—————————————————————
local_root=/var/www/html/hello
write_enable=YES
anon_world_readable_Only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
—————————————————————
生成虚拟用户数据库vsftpd.db,方法如下:
第一步:创建用户和密码文件ftplogins.txt,奇数行为用户名,偶数行为密码。
第二步:生成虚拟用户数据库 db_load -T -t hash -f /etc/vsftpd/ftplogins.txt /etc/vsftpd/vsftpd.db
建立vsftpd的宿主用户:
useradd vsftpd -s /sbin/nologin
设置vsftpd的验证方法:
打开/etc/pam.d/vsftpd
# vi /etc/pam.d/vsftpd
去除里面的所有验证方式,添加以下两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd #(第二是vsftpd是我们生成的vsftpd.db)
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd
启动vsftpd,方法如下:
service vsftpd start (restart/stop/status)
解释:start 是启动,stop 是停止,restart是重启,status是查看vsftpd的运行状态
遇到的问题:
问题1:500 OOPS:cannot change directory:/var/www/html
解决办法:
1、 查看 SELinux 的状态: sestatus -b | grep ftp 确切地说,只是查看了ftp的状态。
2、 在出现的结果中可以看到 ftp_home_dir off tftpd_disable_trans off之类。我们现在只要把其中之一设置为on就可以啦。
3、 setsebool -P ftpd_disable_trans on 或者 setsebool -P ftp_home_dir on
4、 重启vsftpd: service vsftpd restart
问题2:500 OOPS: cannot open user list file:/etc/vsftpd/user_list
解决办法:这个情况是没有user_list文件
第一种办法:建立这个文件, 采用 echo root >> /etc/vsftpd/user_list
第二种办法:编辑vsftpd.conf,注释掉userlist_enable=YES
问题3:500 OOPS: cannot open chroot() user list file Login failed
解决办法:建立vsftpd.chroot_list文件,touch /etc/vsftpd/vsftpd.chroot_list
问题4:sftpd 启动 报错: vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable
解决办法:vi /etc/vsftpd.conf 时,:每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现…