home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- #
-
- set -e
-
- # Do debconf stuff here
- . /usr/share/debconf/confmodule
-
- # We need a default smb.conf file. If one doesn't exist we put in place
- # one that has some basic defaults.
- if [ ! -e /etc/samba/smb.conf ]; then
- cp -a /usr/share/samba/smb.conf /etc/samba/
- fi
-
- # Static tempfile location, dpkg-style
- TMPFILE=/etc/samba/smb.conf.dpkg-tmp
-
- # ------------------------- Debconf questions start ---------------------
-
- # Is the user configuring with debconf, or he/she prefers swat/manual
- # config?
- db_get samba-common/do_debconf || true
- if [ "${RET}" = "true" ]; then
- # Get workgroup name
- db_get samba-common/workgroup || true
- WORKGROUP="${RET}"
-
- # Oh my GOD, this is ugly. Why would anyone put these
- # characters in a workgroup name? Why, Lord, why???
- WORKGROUP=`echo $WORKGROUP | \
- sed -e's/\\\\/\\\\\\\\/g
- s#/#\\\\/#g
- s/&/\\\&/g
- s/\\\$/\\\\\\\$/g'`
-
- sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
- /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ \
- s/^\([[:space:]]*\)workgroup[[:space:]]*=.*/\1workgroup = ${WORKGROUP}/i" \
- < /etc/samba/smb.conf >${TMPFILE}
- mv -f ${TMPFILE} /etc/samba/smb.conf
-
- # Encrypt passwords?
- db_get samba-common/encrypt_passwords || true
- ENCRYPT_PASSWORDS="${RET}"
-
- sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
- /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ \
- s/^\([[:space:]]*\)encrypt passwords[[:space:]]*=.*/\1encrypt passwords = ${ENCRYPT_PASSWORDS}/i" \
- < /etc/samba/smb.conf >${TMPFILE}
- mv -f ${TMPFILE} /etc/samba/smb.conf
-
- # Install DHCP support
- db_get samba-common/dhcp && DHCPVAL="$RET"
- db_fget samba-common/dhcp applied || true
- if [ "$DHCPVAL" = true ] && [ "$RET" != true ] && \
- ! grep -q dhcp.conf /etc/samba/smb.conf
- then
- sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
- /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ {
- /wins server[[:space:]]*=/a \\
- \\
- # If we receive WINS server info from DHCP, override the options above. \\
- include = /etc/samba/dhcp.conf
- }" < /etc/samba/smb.conf > ${TMPFILE}
- mv -f ${TMPFILE} /etc/samba/smb.conf
- elif [ "$RET" != true ] && grep -q dhcp.conf /etc/samba/smb.conf
- then
- :
- # FIXME: here we /delete/ the lines?
- fi
- # Once we get here, the config has been applied, whatever
- # it is.
- if [ "$RET" != true ]; then
- db_fset samba-common/dhcp applied true
- fi
-
- if grep -qi "^[[:space:]]*passdb backend[[:space:]]*=.*unixsam" /etc/samba/smb.conf
- then
- sed -e 's/^\([[:space:]]*\)passdb backend/\1passdb backend/i
- /^[[:space:]]*passdb backend/ {
- s/unixsam/guest/i
- }' < /etc/samba/smb.conf > ${TMPFILE}
- mv -f ${TMPFILE} /etc/samba/smb.conf
- fi
-
- if [ -n "$2" ] && dpkg --compare-versions "$2" lt 3.0.23b-2 \
- && grep -qi "^[[:space:]]*passdb backend[[:space:]]*=.*guest" /etc/samba/smb.conf
- then
- sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
- /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ \
- s/^\([[:space:]]*passdb backend[[:space:]]*=[^,]*\),\?[[:space:]]*guest[[:space:]]*$/\1/i" \
- < /etc/samba/smb.conf >${TMPFILE}
- mv -f ${TMPFILE} /etc/samba/smb.conf
- fi
- fi
-
- chmod a+r /etc/samba/smb.conf
-
- # ------------------------- Debconf questions end ---------------------
-
- db_stop
-
-
-