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

猜你喜欢

给win10 LTSC版安装Microsoft stroe

给win10 LTSC版安装Microsoft stroe

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

windows server 2012 r2激活工具

windows server 2012 r2激活工具

最近倒腾下windows server 2012 r2,一直没成功激活,放了大半个月,今天睡觉前再看下,找到了个能用的激活工具,就记录下。 工具名称应该是 KMSpico ,从https://www....

centos6/7 yum安装mysql其它版本(mysql5.7/5.6)

对于mysql,是越来越不想花时间安装了,但yum的自带版本太低,必须简单处理下。 yum list installed | grep mysql #移除已安装的 yum remove mysql-l...