Dockerfile / samba.sh cleanup

This commit is contained in:
David Personette 2017-10-23 07:15:10 -04:00
parent e6db04336b
commit d42d897ca7
2 changed files with 35 additions and 31 deletions

View File

@ -2,35 +2,39 @@ FROM alpine
MAINTAINER David Personette <dperson@gmail.com>
# Install samba
RUN apk --no-cache add bash samba shadow && \
RUN apk --no-cache --no-progress add bash samba shadow && \
adduser -D -G users -H -g 'Samba User' -h /tmp smbuser && \
sed -i 's|^\( log file = \).*|\1/dev/stdout|' /etc/samba/smb.conf && \
sed -i 's|^\( load printers = \).*|\1no|' /etc/samba/smb.conf && \
sed -i 's|^\( printcap name = \).*|\1/dev/null|' /etc/samba/smb.conf && \
sed -i 's|^;*\( printing = \).*|\1bsd|' /etc/samba/smb.conf && \
sed -i 's|^\( unix password sync = \).*|\1no|' /etc/samba/smb.conf && \
sed -i '/Share Definitions/,$d' /etc/samba/smb.conf && \
echo ' pam password change = yes' >>/etc/samba/smb.conf && \
echo ' map to guest = bad user' >>/etc/samba/smb.conf && \
echo ' usershare allow guests = yes' >>/etc/samba/smb.conf && \
echo ' create mask = 0664' >>/etc/samba/smb.conf && \
echo ' force create mode = 0664' >>/etc/samba/smb.conf && \
echo ' directory mask = 0775' >>/etc/samba/smb.conf && \
echo ' force directory mode = 0775' >>/etc/samba/smb.conf && \
echo ' force user = smbuser' >>/etc/samba/smb.conf && \
echo ' force group = users' >>/etc/samba/smb.conf && \
echo ' follow symlinks = yes' >>/etc/samba/smb.conf && \
echo ' load printers = no' >>/etc/samba/smb.conf && \
echo ' printing = bsd' >>/etc/samba/smb.conf && \
echo ' printcap name = /dev/null' >>/etc/samba/smb.conf && \
echo ' disable spoolss = yes' >>/etc/samba/smb.conf && \
echo ' socket options = TCP_NODELAY' >>/etc/samba/smb.conf && \
echo ' strict locking = no' >>/etc/samba/smb.conf && \
echo ' vfs objects = recycle' >>/etc/samba/smb.conf && \
echo ' recycle:keeptree = yes' >>/etc/samba/smb.conf && \
echo ' recycle:versions = yes' >>/etc/samba/smb.conf && \
echo ' min protocol = SMB2' >>/etc/samba/smb.conf && \
echo '' >>/etc/samba/smb.conf && \
file="/etc/samba/smb.conf" && \
sed -i 's|^;* *\(log file = \).*| \1/dev/stdout|' $file && \
sed -i 's|^;* *\(load printers = \).*| \1no|' $file && \
sed -i 's|^;* *\(printcap name = \).*| \1/dev/null|' $file && \
sed -i 's|^;* *\(printing = \).*| \1bsd|' $file && \
sed -i 's|^;* *\(unix password sync = \).*| \1no|' $file && \
sed -i 's|^;* *\(preserve case = \).*| \1yes|' $file && \
sed -i 's|^;* *\(short preserve case = \).*| \1yes|' $file && \
sed -i 's|^;* *\(default case = \).*| \1lower|' $file && \
sed -i '/Share Definitions/,$d' $file && \
echo ' pam password change = yes' >>$file && \
echo ' map to guest = bad user' >>$file && \
echo ' usershare allow guests = yes' >>$file && \
echo ' create mask = 0664' >>$file && \
echo ' force create mode = 0664' >>$file && \
echo ' directory mask = 0775' >>$file && \
echo ' force directory mode = 0775' >>$file && \
echo ' force user = smbuser' >>$file && \
echo ' force group = users' >>$file && \
echo ' follow symlinks = yes' >>$file && \
echo ' load printers = no' >>$file && \
echo ' printing = bsd' >>$file && \
echo ' printcap name = /dev/null' >>$file && \
echo ' disable spoolss = yes' >>$file && \
echo ' socket options = TCP_NODELAY' >>$file && \
echo ' strict locking = no' >>$file && \
echo ' vfs objects = recycle' >>$file && \
echo ' recycle:keeptree = yes' >>$file && \
echo ' recycle:versions = yes' >>$file && \
echo ' min protocol = SMB2' >>$file && \
echo '' >>$file && \
rm -rf /tmp/*
COPY samba.sh /usr/bin/

View File

@ -38,10 +38,10 @@ charmap() { local chars="$1" file=/etc/samba/smb.conf
# option) raw option
# Return: line added to smb.conf (replaces existing line with same key)
global() { local key="${1%%=*}" value="${1#*=}" file=/etc/samba/smb.conf
if grep -qE '^\s*'"$key" "$file"; then
sed -i 's|^\s*'"$key"'.*| '"$key = $value"'|' "$file"
if grep -qE '^;*\s*'"$key" "$file"; then
sed -i 's|^;*\s*'"$key"'.*| '"${key% } = ${value# }"'|' "$file"
else
sed -i '/\[global\]/a \ '"$key = $value" "$file"
sed -i '/\[global\]/a \ '"${key% } = ${value# }" "$file"
fi
}