diff --git a/add-virtual-user.sh b/add-virtual-user.sh index a5bd71c..848f96b 100755 --- a/add-virtual-user.sh +++ b/add-virtual-user.sh @@ -2,22 +2,22 @@ set -e -[ "$DEBUG" == 'true' ] && set -x +[[ "${DEBUG}" == 'true' ]] && set -x DB=/etc/vsftpd/virtual-users.db -if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then - echo "Usage: $0 [-d] " >&2 - echo >&2 - echo "[ -d ] Delete the database first" >&2 - exit 1 +if [[ "$#" -lt 2 || "$#" -gt 3 ]]; then + echo "Usage: $0 [-d] " >&2 + echo >&2 + echo "[ -d ] Delete the database first" >&2 + exit 1 fi -if [ "$1" == "-d" ]; then - if [ -f $DB ]; then - rm $DB - fi - shift +if [[ "${1}" == "-d" ]]; then + if [[ -f "${DB}" ]]; then + rm "${DB}" + fi + shift fi -echo -e "$1\n$2" | db5.3_load -T -t hash $DB +echo -e "${1}\n${2}" | db5.3_load -T -t hash "${DB}" diff --git a/entry.sh b/entry.sh index 9459881..bc5ba2e 100755 --- a/entry.sh +++ b/entry.sh @@ -2,33 +2,34 @@ set -e -[ "$DEBUG" == 'true' ] && set -x +[[ "${DEBUG}" == 'true' ]] && set -x # Generate password if hash not set -if [ ! -z "$FTP_PASSWORD" -a -z "$FTP_PASSWORD_HASH" ]; then - FTP_PASSWORD_HASH=$(echo "$FTP_PASSWORD" | mkpasswd -s -m sha-512) +if [[ ! -z "${FTP_PASSWORD}" && -z "${FTP_PASSWORD_HASH}" ]]; then + FTP_PASSWORD_HASH=$(echo "${FTP_PASSWORD}" | mkpasswd -s -m sha-512) fi -if [ ! -z "$FTP_USER" -a ! -z "$FTP_PASSWORD_HASH" ]; then - /add-virtual-user.sh -d "$FTP_USER" "$FTP_PASSWORD_HASH" +if [[ ! -z "${FTP_USER}" && ! -z "${FTP_PASSWORD_HASH}" ]]; then + echo "Adding user ${FTP_USER}" + /add-virtual-user.sh -d "${FTP_USER}" "${FTP_PASSWORD_HASH}" fi # Support multiple users while read user; do - IFS=: read name pass <<< ${!user} - echo "Adding user $name" - /add-virtual-user.sh "$name" "$pass" + IFS=: read name pass <<< "${!user}" + echo "Adding user ${name}" + /add-virtual-user.sh "${name}" "${pass}" done < <(env | grep "FTP_USER_" | sed 's/^\(FTP_USER_[a-zA-Z0-9]*\)=.*/\1/') # Support user directories -if [ ! -z "$FTP_USERS_ROOT" ]; then - sed -i 's/local_root=.*/local_root=\/srv\/$USER/' /etc/vsftpd*.conf +if [[ ! -z "${FTP_USERS_ROOT}" ]]; then + sed -i 's/local_root=.*/local_root=\/srv\/$USER/' "/etc/vsftpd*.conf" fi -function vsftpd_stop { +vsftpd_stop() { echo "Received SIGINT or SIGTERM. Shutting down vsftpd" # Get PID - pid=$(cat /var/run/vsftpd/vsftpd.pid) + pid="$(cat /var/run/vsftpd/vsftpd.pid)" # Set TERM kill -SIGTERM "${pid}" # Wait for exit @@ -37,7 +38,7 @@ function vsftpd_stop { echo "Done" } -if [ "$1" == "vsftpd" ]; then +if [[ "$1" == "vsftpd" ]]; then trap vsftpd_stop SIGINT SIGTERM echo "Running $@" $@ &