(一) 思路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配置中不要輸入多餘的空格,輸入多餘的空格會報錯的