shell 自動化安裝Vsftpd

(一)  思路

  (1) 通過yum install  vsftpd  -y 安裝虛擬用戶


  (2)關閉防火牆和Selinux

        service iptables  stop      setenforce 0


  (3)創建虛擬用戶的登錄名和密碼


  (4)生成數據庫文件,並對數據庫進行700授權


  (5)生成PAM驗證文件


  (6)創建Vsftpd 映射本地用戶


  (7)修改vsftpd.conf配置文件,加入虛擬用戶配置文件


  (8)創建虛擬用戶自己的家目錄並設置訪問權限


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

        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章