centos7一鍵安裝vsftpd腳本


centos ftp 權限控制比較嚴格 手動配置非常麻煩,搞了一鍵腳本,方便大家快速配置

 

1.創建sh腳本文件

sudo vim /root/install_vsftpd.sh

2.貼入以下內容

#!/bin/bash
#此腳本目前只是為了方便centos7下安裝vsftp,其他版本后期集成。
#ftp數據存放目錄
# by liwentong 20191219
ftp_data=/home/ftp
chcek_friewalld(){
    echo "開始檢查防火牆設置"
    systemctl status firewalld |grep runing & >/dev/null
    if [ $? -ne 0 ]
    then
        firewall-cmd --add-port=21/tcp --zone=public --permanent
        firewall-cmd --add-service=ftp
        firewall-cmd --reload
    fi
    if [ $? -eq 0 ]
    then
        echo "防火牆開啟成功"
    fi
    useradd -s /sbin/nologin ftp
}
#搭建ftp
install_vsftp(){
    echo "開始安裝vsftp 並且檢查環境" 
    yum -y install vsftpd libdb-utils
    if [ $? -ne 0 ]
    then
        echo "請檢查你的yum源情況,是否出現無法用,可單獨在終端執行 yum makecache 測試"
        exit 1
    fi
    #檢查防火牆,開放21端口
    chcek_friewalld
    echo "開始配置ftp"
    mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
    #配置數據寫入到配置文件

    cat >/etc/vsftpd/vsftpd.conf<<LWT
listen=yes
anonymous_enable=no
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=yes
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/vsftpd_user_conf
pam_service_name=vsftpd.vu
allow_writeable_chroot=YES
local_enable=YES
LWT

    read -p "輸入ftp用戶:" ftp_user
    if [ ! -n "$ftp_user" ];then
        ftp_user=test
    fi
    read -p "輸入ftp用戶密碼:" ftp_passwd
    if [ ! -n "$ftp_passwd" ];then
        ftp_passwd=123456
    fi
    cd /etc/vsftpd
    echo $ftp_user >/etc/vsftpd/user.txt
    echo $ftp_passwd >>/etc/vsftpd/user.txt
    db_load -T -t hash -f user.txt vsftpd_login.db
    chmod 600 /etc/vsftpd/vsftpd_login.db
    touch /etc/pam.d/vsftpd.vu
    echo "判斷此系統是32位操作系統還是64位"
    #判斷centos系統位64位還是32位
    xd=`getconf LONG_BIT`
    if [ $xd  -eq '64' ];then
        echo "此系統為64位"
        echo "auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" >  /etc/pam.d/vsftpd.vu
        echo "account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" >> /etc/pam.d/vsftpd.vu
    else
        echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" > /etc/pam.d/vsftpd.vu
        echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" >> /etc/pam.d/vsftpd.vu
    fi
    #限制用戶切換工作目錄
    touch /etc/vsftpd/chroot_list
    echo $ftp_user >>/etc/vsftpd/chroot_list
    #配置虛擬用戶的配置文件
    mkdir -p /etc/vsftpd/vsftpd_user_conf
    cd /etc/vsftpd/vsftpd_user_conf
    #寫入用戶權限配置
    cat >$ftp_user <<LWT
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
LWT
    echo "local_root="$ftp_data/$ftp_user>>$ftp_user
    mkdir -p $ftp_data
    chown -R ftp:root $ftp_data
    chmod o+rw $ftp_data
    mkdir -p $ftp_data/$ftp_user
    chmod -R 777 $ftp_data/$ftp_user
    systemctl restart vsftpd.service
}
#創建虛擬用戶
create_user(){
    ftp_passwd=123456
    read -p "輸入你要創建的用戶名:" ftp_user
    if [ ! -n  "$ftp_user" ];then
        echo "你沒有輸入用戶名,退出"
        exit 1
    else
        read -p "輸入密碼:" ftp_pass
        if [ ! -n "$ftp_pass" ];then
            echo "密碼沒有輸入,默認123456"
        else
            ftp_passwd=$ftp_pass
        fi
    fi
    cd /etc/vsftpd
    echo $ftp_user >>/etc/vsftpd/user.txt
    echo $ftp_passwd >>/etc/vsftpd/user.txt
    db_load -T -t hash -f user.txt /etc/vsftpd/vsftpd_login.db
    chmod 600 /etc/vsftpd/vsftpd_login.db
    echo $ftp_user >>/etc/vsftpd/chroot_list
    cd /etc/vsftpd/vsftpd_user_conf
    cat >$ftp_user<<LWT 
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
LWT
    echo "local_root="$ftp_data/$ftp_user>>$ftp_user
    mkdir -p $ftp_data/$ftp_user
    chmod -R 777 $ftp_data/$ftp_user
}


echo "輸入你要操作的內容"
select var in install_vsftpd create_user quit
do
    
    case $var in 
    install_vsftpd)
        install_vsftp;
        ;;
    create_user)
        create_user
        ;;
    quit)
        exit 1
        ;;
    esac
done

3.保存

:wq!

4.執行sh腳本

sudo sh install_vsftpd.sh

5.安裝並輸入用戶名

 

 

 

 登陸並上傳測試

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM