-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathentrypoint.sh
More file actions
executable file
·48 lines (43 loc) · 1.59 KB
/
entrypoint.sh
File metadata and controls
executable file
·48 lines (43 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash
if [ -n "${PASV_ADDRESS}" ]; then
sed -i "s/^pasv_address=.*$/pasv_address=${PASV_ADDRESS}/" /etc/vsftpd/vsftpd.conf
fi
if [ -n "${PASV_MIN_PORT}" ]; then
sed -i "s/^pasv_min_port=.*$/pasv_min_port=${PASV_MIN_PORT}/" /etc/vsftpd/vsftpd.conf
fi
if [ -n "${PASV_MAX_PORT}" ]; then
sed -i "s/^pasv_max_port=.*$/pasv_max_port=${PASV_MAX_PORT}/" /etc/vsftpd/vsftpd.conf
fi
# add groups
if [ -n "${GROUPS}" ]; then
IFS=';' read -r -a parsed_groups <<< "${GROUPS}" ; unset IFS
for group in ${parsed_groups[@]}; do
IFS=':' read -r -a parsed_group <<< "${group}" ; unset IFS
groupname=${parsed_group[0]}
gid=${parsed_group[1]}
group_exists=`getent group ${groupname} 1>/dev/null 2>/dev/null; echo $?`
if [ ${group_exists} -ne 0 ]; then
echo adding group ${groupname}
addgroup -g ${gid} ${groupname}
fi
done
fi
# add users
if [ -n "${USERS}" ]; then
IFS=';' read -r -a parsed_users <<< "${USERS}" ; unset IFS
for user in ${parsed_users[@]}; do
IFS=':' read -r -a parsed_user <<< "${user}" ; unset IFS
username=${parsed_user[0]}
password=${parsed_user[1]}
uid=${parsed_user[2]}
groupname=${parsed_user[3]}
user_exists=`getent passwd ${username} 1>/dev/null 2>/dev/null; echo $?`
if [ ${user_exists} -ne 0 ]; then
echo adding user ${username}
adduser ${username} -h /home/${username} -s /bin/sh -u ${uid} -G ${groupname} -D
echo "${username}:${password}" | chpasswd
fi
done
fi
/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
tail -f /dev/null