-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathentrypoint.sh
44 lines (36 loc) · 1.29 KB
/
entrypoint.sh
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
#!/bin/sh
set -e
CONFIG_PATH=${CONFIG_PATH:-'/etc/samba/container-default.conf'}
UID=${UID:-1000}
USERNAME=${USERNAME:-'user'}
echo Username: "$USERNAME"
if [ -z "$PASSWORD" ]
then
PASSWORD=$(head -c 16 /dev/random | base64 | tr -d -c 'a-zA-Z0-9')
echo Password: "$PASSWORD"
fi
if [ -n "$ALLOW_HOSTS" ]
then
echo hosts allow = "$ALLOW_HOSTS" > /etc/samba/whitelist.conf
fi
if [ -n "$DENY_HOSTS" ]
then
echo hosts deny = "$DENY_HOSTS" > /etc/samba/blacklist.conf
fi
if ! getent passwd "$UID" > /dev/null;
then
# -s SHELL Login shell
# -H Don't create home directory
# -D Don't assign a password
# -u UID User id
adduser -s /sbin/nologin -H -D -u "$UID" "$USERNAME"
echo "$USERNAME":"$PASSWORD" | chpasswd > /dev/null 2>&1
fi
# -s use stdin for password prompt
# -a add user
printf '%s\n%s\n' "$PASSWORD" "$PASSWORD" | smbpasswd -s -a "$USERNAME" > /dev/null
USERNAME=$USERNAME perl -p -i -e 's/^\s*valid users\s*\=\s*nobody\s*$/ valid users \= $ENV{USERNAME}\n/g' '/etc/samba/container-default.conf'
echo '---- smbd Config ----'
yes | testparm "$CONFIG_PATH"
echo '---- Starting smbd ----'
smbd --foreground --configfile="$CONFIG_PATH" --debug-stdout --debuglevel=1 --no-process-group "$@"