CentOS7.x上一键FTP安装脚本


FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:”下载”(Download)和”上传”(Upload)。”下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

#!/bin/bash
#此脚本目前只是为了方便centos7下安装vsftp,其他版本后期集成。
#ftp数据存放目录
ftp_data=/home/ftp
check_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端口
    check_friewalld
    echo "开始配置ftp"
    mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
    #配置数据写入到配置文件

    cat >/etc/vsftpd/vsftpd.conf</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 <>/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<

文章作者: darebeat
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 darebeat !
  目录