51 lines
1.1 KiB
Bash
51 lines
1.1 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
share_name="${SMB_SHARE_NAME:-files}"
|
|
user_name="${SMB_USER:-govoplan}"
|
|
password="${SMB_PASSWORD:-govoplan-smb}"
|
|
uid="${SMB_UID:-1000}"
|
|
gid="${SMB_GID:-1000}"
|
|
|
|
mkdir -p /storage /var/lib/samba/private /run/samba
|
|
|
|
if ! getent group "$user_name" >/dev/null 2>&1; then
|
|
addgroup -g "$gid" "$user_name"
|
|
fi
|
|
|
|
if ! id "$user_name" >/dev/null 2>&1; then
|
|
adduser -D -H -s /sbin/nologin -u "$uid" -G "$user_name" "$user_name"
|
|
fi
|
|
|
|
chown -R "$user_name:$user_name" /storage
|
|
|
|
cat > /etc/samba/smb.conf <<EOF
|
|
[global]
|
|
server role = standalone server
|
|
workgroup = WORKGROUP
|
|
security = user
|
|
map to guest = Never
|
|
server min protocol = SMB2
|
|
load printers = no
|
|
printing = bsd
|
|
disable spoolss = yes
|
|
log level = 1
|
|
passdb backend = tdbsam
|
|
|
|
[$share_name]
|
|
path = /storage
|
|
browseable = yes
|
|
read only = no
|
|
guest ok = no
|
|
valid users = $user_name
|
|
force user = $user_name
|
|
force group = $user_name
|
|
create mask = 0664
|
|
directory mask = 0775
|
|
EOF
|
|
|
|
printf '%s\n%s\n' "$password" "$password" | smbpasswd -s -a "$user_name" >/dev/null
|
|
smbpasswd -e "$user_name" >/dev/null
|
|
|
|
exec smbd --foreground --no-process-group --debug-stdout
|