(一) 思路linux
(1) 经过yum install vsftpd -y 安装虚拟用户shell
(2)关闭防火墙和Selinux数据库
service iptables stop setenforce 0bash
(3)建立虚拟用户的登陆名和密码ide
(4)生成数据库文件,并对数据库进行700受权ui
(5)生成PAM验证文件spa
(6)建立Vsftpd 映射本地用户进程
(7)修改vsftpd.conf配置文件,加入虚拟用户配置文件ip
(8)建立虚拟用户本身的家目录并设置访问权限get
(9)启动vsftpd验证配置结果
v1版本 shell 自动化安装vsftpd
#!/bin/bash #2017年11月19日09:30:10 #config_vsftpd v1 ################ yum install vsftpd -y 安装Vsftpd用户 yum install db4* -y 安装db4数据库 service iptables stop 关闭防火墙 setenforce 0 关闭selinux cat>/etc/vsftpd/ftpusers.txt<<EOF 在ftpusers.txt文件中建立用户名和密码 jfedu001 123456 EOF db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db 生成DB数据库 chmod 700 /etc/vsftpd/vsftpd_login.db 对DB数据库进行700受权 cat>/etc/pam.d/vsftpd<<EOF 在pam.d配置文件中,添加认证语句 auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login account required pam_userdb.so db=/etc/vsftpd/vsftpd_login EOF useradd -s /sbin/nologin ftpuser 设置ftpuser用户的bash环境为禁止登陆Linux系统 cat>>/etc/vsftpd/vsftpd.conf<<EOF pam_service_name=vsftpd guest_enable=YES guest_username=ftpuser user_config_dir=/etc/vsftpd/vsftpd_user_conf virtual_use_local_privs=YES EOF 在vsftpd.conf配置文件中添加虚拟用户配置文件 mkdir -p /etc/vsftpd/vsftpd_user_conf/ 建立vsftpd_user_conf这个目录 cat>/etc/vsftpd/vsftpd_user_conf/jfedu001 <<EOF local_root=/home/ftpuser/jfedu001 write_enable=YES anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES EOF 在jfedu001目录中,建立虚拟用户配置文件,设置访问权限 mkdir -p /home/ftpuser/jfedu001 建立虚拟用户本身的家目录 chown -R ftpuser:ftpuser /home/ftpuser 受权/home/ftpuser这个目录的用户和组是ftpuser |
#!/bin/bash #2017年11月19日09:30:10 #config_vsftpd v2 ################ FTP_VIR_USR="jfedu001" FTP_USR="ftpuser" YUM="vsftpd db4*" FTP_DIR="/etc/vsftpd" FTP_DB="vsftpd_login" FTP_USR_VIR="vsftpd_user_conf" yum install $YUM -y service iptables stop setenforce 0 cat>/$FTP_DIR/$FTP_USRs.txt<<EOF $FTP_VIR_USR 123456 EOF db_load -T -t hash -f /$FTP_DIR/$FTP_USRs.txt /$FTP_DIR/FTP_DB.db chmod 700 /$FTP_DIR/FTP_DB.db cat>/etc/pam.d/vsftpd<<EOF auth required pam_userdb.so db=/$FTP_DIR/FTP_DB account required pam_userdb.so db=/$FTP_DIR/FTP_DB EOF useradd -s /sbin/nologin $FTP_USR cat>>/$FTP_DIR/vsftpd.conf<<EOF pam_service_name=vsftpd guest_enable=YES guest_username=$FTP_USR user_config_dir=/$FTP_DIR/$FTP_USR_VIR virtual_use_local_privs=YES EOF mkdir -p /$FTP_DIR/$FTP_USR_VIR/ cat>/$FTP_DIR/$FTP_USR_VIR/$FTP_VIR_USR <<EOF local_root=/home/$FTP_USR/$FTP_VIR_USR write_enable=YES anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES EOF mkdir -p /home/$FTP_USR/$FTP_VIR_USR chown -R $FTP_USR:$FTP_USR /home/$FTP_USR |
验证配置结果
(1)查看vsftpd进程是否启动 ps -ef |grep vsftpd
(2)查看21端口是否启动 netstat -ntl | grep 21
服务自启动
chkconfig vsftpd on
小知识补充
<1> 临时关闭防火墙 service iptables stop
<2> 永久关闭防火墙 checkconfig iptables off
<3> 临时关闭selinux setenforce 0
<4> 永久关闭selinux vi /etc/selinux/config 配置文件中把selinux改成disabled
<5> 查看selinux状态 getenforce
注释: Vsftpd配置中不要输入多余的空格,输入多余的空格会报错的