service-ftp/run.sh
2017-09-11 19:05:18 +02:00

59 lines
1.4 KiB
Bash
Executable file

#!/bin/sh
## Mount directories into /ftp
vsftp_add_user() {
local username="$1"
local password="$2"
echo "Adding user:$username with password:******"
mkdir -p "/home/$username"
# UID 33 is for www-data in WP
adduser \
-h "/home/$username" \
-s /bin/sh \
-D \
"$username"
echo "$username:$password" | chpasswd
# GID 33 is for www-data in WP
sed -i "s/^$username:x:[0-9]*:[0-9]*:/$username:x:33:33:/" /etc/passwd
sed -i "s/^$username:x:[0-9]*:/$username:x:33:/" /etc/group
chown "$username:$username" "/home/$username"
}
vsftp_main() {
# Create users
idx=0
while true ; do
idx=$((idx + 1 ))
eval "username=\${VSFTP_USER_${idx}_USERNAME:-}"
eval "password=\${VSFTP_USER_${idx}_PASSWORD:-}"
if [ -z "$username" ]; then break ; fi
vsftp_add_user "$username" "$password"
done
if [ $idx -eq 1 ]; then
echo "Please export environement variables for users"
echo ""
echo "Ex: "
echo " VSFTP_USER_1_USERNAME=johnsnow"
echo " VSFTP_USER_1_PASSWORD=Winter1sC0ming"
echo " VSFTP_USER_2_USERNAME=tyrionlannister"
echo " VSFTP_USER_2_PASSWORD=aLann1ster4lwaysPaysHisD3bts"
fi
echo "Starting VSFTP"
exec vsftpd /etc/vsftpd/vsftpd.conf
}
sed -i \
-e "s/^pasv_address=.*$/pasv_address=${VSFTP_HOSTNAME:-}/" \
-e "s/^anonymous_enable=.*$/anonymous_enable=NO/" \
/etc/vsftpd/vsftpd.conf
{
echo "log_ftp_protocol=YES" ;
} >> /etc/vsftpd/vsftpd.conf
vsftp_main