📄 samba-common.postinst
字号:
#!/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-styleTMPFILE=/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 || trueif [ "${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 # Update charset settings? if ! grep -q "^[[:space:]]*unix charset[[:space:]]*=" /etc/samba/smb.conf then db_get samba-common/character_set || true UNIXCHARSET="${RET}" if [ -n "$UNIXCHARSET" ] then sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i s/^\([[:space:]]*\)character set/\1character set/i /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ { /^[[:space:]]*character set[[:space:]]*=/c \\ unix charset = $UNIXCHARSET }" < /etc/samba/smb.conf > ${TMPFILE} mv -f ${TMPFILE} /etc/samba/smb.conf fi 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 ! grep -q "^[[:space:]]*dos charset[[:space:]]*=" /etc/samba/smb.conf then db_get samba-common/codepage || true DOSCHARSET="${RET}" if [ -n "$DOSCHARSET" ] then sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i s/^\([[:space:]]*\)client code page/\1client code page/i /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ { /^[[:space:]]*client code page[[:space:]]*=/c \\ dos charset = $DOSCHARSET}" < /etc/samba/smb.conf > ${TMPFILE} mv -f ${TMPFILE} /etc/samba/smb.conf fi fi if dpkg --compare-versions "$2" lt 2.999+3.0.alpha20-4 \ && ! grep -q "^[[:space:]]*panic action[[:space:]]*=" /etc/samba/smb.conf then sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i /^[[:space:]]*\[global\]/a \\\\# Do something sensible when Samba crashes: mail the admin a backtrace\\ panic action = /usr/share/samba/panic-action %d" < /etc/samba/smb.conf > ${TMPFILE} mv -f ${TMPFILE} /etc/samba/smb.conf fifichmod a+r /etc/samba/smb.conf# ------------------------- Debconf questions end ---------------------db_stop#DEBHELPER#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -