#!/bin/bash ##如果变量未设置用户则配置默认用户为admin if [ -z "$FTP_USER1" ]; then export FTP_USER1='admin' fi ##如果变量未设置用户密码,则随机生成用户密码,可从日志中查看 if [ -z "$FTP_PASS1" ]; then export FTP_PASS1=`cat /dev/urandom | tr -dc A-Z-a-z-0-9 | head -c${1:-16}` fi ##配置ftp根目录 if [ -z "$FTP_DIR" ]; then export FTP_DIR='/data/ftp' fi ##修改ftp根目录配置 sed -i s#FTP_DIR#$FTP_DIR#g /etc/vsftpd/vsftpd.conf ##获取日志文件 LOG_FILE=`grep xferlog_file /etc/vsftpd/vsftpd.conf|cut -d= -f2` export LOG_FILE=`grep xferlog_file /etc/vsftpd/vsftpd.conf|cut -d= -f2` mkdir -p `dirname $LOG_FILE` touch $LOG_FILE cat << EOF | tee $LOG_FILE ******************************************************************************** * * * * Docker image: registry.cn-hangzhou.aliyuncs.com/zhengyu1992/vsftpd:zy5447 * * * * ******************************************************************************** SERVER SETTINGS --------------- EOF ##创建ftp账户 env|grep FTP_USER |awk -F[_=] '{print $2}'|while read user_number do user=FTP_$user_number pass=${user_number}_PASS mkdir -p "$FTP_DIR/${!user}" echo "${!user}" >> /etc/vsftpd/virtual_users.txt echo "${!pass}" >> /etc/vsftpd/virtual_users.txt cat << EOF | tee -a $LOG_FILE · FTP User: ${!user} · FTP Password: ${!pass} --------------- EOF done /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db chown -R ftp:ftp "$FTP_DIR" # stdout server info: # Run vsftpd: &>/dev/null /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf tail -n+1 -F $LOG_FILE