Centos一键安装部署vsftp

每次给不同的人配置ftp,都手工搞一次,决定简化这一步操作。
1、自动安装vsftp
2、自动设置被动模式、并打开iptables端口
3、支持自动创建ftp目录 帐号 密码
4、安装后,以后每次运行脚本,都可以用于创建用户密码目录
*由于权限设置方法不同,需要自己在完成后设置ftp目录的写入权限

*适合系统 centos 6

ftp.png


if [ ! -e "/etc/init.d/vsftpd" ];then

echo '是否需要安装vsftpd? 不需要请回n ,需要按任意键'
read inputvar

    if [ $inputvar != 'n' ];then

        yum -y install db4 db4-utils
        yum -y install vsftpd
        sed -i 's/anonymous_enable=YES/anonymous_enable=No/g' /etc/vsftpd/vsftpd.conf
        sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/g' /etc/vsftpd/vsftpd.conf
        sed -i 's/#ascii_upload_enable=YES/ascii_upload_enable=YES/g' /etc/vsftpd/vsftpd.conf
        sed -i 's/#ascii_download_enable=YES/ascii_download_enable=YES/g' /etc/vsftpd/vsftpd.conf
        sed -i 's/#xferlog_file=\/var\/log\/xferlog/xferlog_file=\/var\/log\/vsftpd.log/g' /etc/vsftpd/vsftpd.conf
        echo "guest_enable=YES" >> /etc/vsftpd/vsftpd.conf
        echo "guest_username=ftp" >> /etc/vsftpd/vsftpd.conf
        echo "user_config_dir=/etc/vsftpd/vuser_conf" >> /etc/vsftpd/vsftpd.conf
        touch /var/log/vsftpd.log
        touch /etc/vsftpd/chroot_list
        echo ftp >> /etc/vsftpd/chroot_list
        touch /etc/vsftpd/vuser_passwd.txt
        mkdir /etc/vsftpd/vuser_conf/
        echo "auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd" > /etc/pam.d/vsftpd
        echo "account required pam_userdb.so db=/etc/vsftpd/vuser_passwd" >>  /etc/pam.d/vsftpd

        echo "pasv_max_port=6666" >> /etc/vsftpd/vsftpd.conf
        echo "pasv_min_port=5555" >> /etc/vsftpd/vsftpd.conf

        /etc/init.d/vsftpd restart

        iptables -I INPUT -p tcp --dport 21 -j ACCEPT
        iptables -I INPUT -p tcp --dport 5555:6666 -j ACCEPT
        /etc/init.d/iptables save
        /etc/init.d/iptables start
    else
        echo '已取消安装vsftpd'

    fi

fi

echo '是否需要创建ftp目录 帐户 密码?'
read inputvar2

if [ $inputvar2 != 'n' ];then
    echo '请输入ftp目录'
    read ftppath
    if [ ! -d "$ftppath" ]; then
      mkdir -p $ftppath
    fi
    echo '请输入ftp帐号'
    read account
    echo '请输入ftp密码'
    read pwd
    echo $account >> /etc/vsftpd/vuser_passwd.txt
    echo $pwd >> /etc/vsftpd/vuser_passwd.txt
    db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
    touch /etc/vsftpd/vuser_conf/$account
    echo local_root=$ftppath >> /etc/vsftpd/vuser_conf/$account
    echo write_enable=YES >> /etc/vsftpd/vuser_conf/$account
    echo anon_umask=022 >> /etc/vsftpd/vuser_conf/$account
    echo anon_world_readable_only=NO >> /etc/vsftpd/vuser_conf/$account
    echo anon_upload_enable=YES >> /etc/vsftpd/vuser_conf/$account
    echo anon_mkdir_write_enable=YES >> /etc/vsftpd/vuser_conf/$account
    echo anon_other_write_enable=YES >> /etc/vsftpd/vuser_conf/$account
    service vsftpd restart
    
    echo '创建完成,请自行设置ftp目录的权限以保证ftp帐号连接时正常读写'
    
    
else
echo '已取消创建ftp目录帐号密码'
fi

猜你喜欢

自用nginx+php7+purgy缓存管理一键安装脚本

安装默认创建站点通过ip访问的,WEB目录位于 /home/public_html/,默认会加一条开启80端口的规则到防火墙。 兼容centos6,centos7 #!/bin/bash set -...

给win10 LTSC版安装Microsoft stroe

给win10 LTSC版安装Microsoft stroe

其实方法很简单,只要打开PowerShell,使用命令 wsreset -i ,确定后会弹出一个cmd窗口一小会,就自动安装好了。 实测环境是win10 ltsc 2021版,不能确定2019版是否...

自用实践两台电脑共用一个音响的方案

自用实践两台电脑共用一个音响的方案

家里有两台电脑,其中有一台不常用的也只有打游戏联机的时候才开,不想单独配一个音箱,于是必须实践两台电脑共用一个音响的方案。 本次方案就是加一条音频线,连接两台电脑,效果如下: 一般主板都有音频输入和...

php7编译安装mcrypt

最近在部署一个第三方消息的时候,发现需要 mcrypt_get_block_size ,因此产生了 mcrypt的编译安装. cd /usr/tmp wget http://pecl.php.net...

Centos一键安装部署vsftp

Centos一键安装部署vsftp

每次给不同的人配置ftp,都手工搞一次,决定简化这一步操作。 1、自动安装vsftp 2、自动设置被动模式、并打开iptables端口 3、支持自动创建ftp目录 帐号 密码 4、安装后,以后每次运行...