diff options
Diffstat (limited to 'packaging/Debian/debian/sambaconfig')
-rw-r--r-- | packaging/Debian/debian/sambaconfig | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/packaging/Debian/debian/sambaconfig b/packaging/Debian/debian/sambaconfig new file mode 100644 index 0000000000..0d35a51967 --- /dev/null +++ b/packaging/Debian/debian/sambaconfig @@ -0,0 +1,130 @@ +#!/bin/sh +# +# Written by Eloy A. Paris <peloy@debian.org> for Debian GNU/Linux. +# + +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +DEBIAN_CONFIG=/etc/samba/debian_config + +NMBDPID=/var/state/samba/nmbd.pid +SMBDPID=/var/state/samba/smbd.pid + +if [ ! -f $DEBIAN_CONFIG ]; then + echo "The file $DEBIAN_CONFIG does not exist! There is something wrong" + echo "with the installation of Samba on this system. Please re-install" + echo "Samba." + exit 1 +fi + +# Read current Samba configuration +. $DEBIAN_CONFIG + +reload=1 + +while [ $# -gt 0 ] +do + case "$1" in + --run-from-inetd) + run_from_inetd=1 + shift + ;; + + --run-as-daemons) + run_from_inetd=0 + shift + ;; + --no-reload) + reload=0 + shift + ;; + + *) + echo "Usage: $0 [--run-from-inetd|--run-as-daemons] [no-reload]" >&2 + exit 1 + ;; + esac +done + +# Make sure there are no Samba daemons (nmbd or smbd) running +# + +if [ "$run_mode" = "from_inetd" ]; then + # Samba is running from inetd - need to disable inetd before + # killing the daemons. + update-inetd --disable netbios-ssn + update-inetd --disable netbios-ns + start-stop-daemon --stop --oknodo --user root --name nmbd --quiet --pidfile $NMBDPID + start-stop-daemon --stop --oknodo --user root --name smbd --quiet --pidfile $SMBDPID +else + # Samba is running as daemons + /etc/init.d/samba stop +fi + +if [ "x$run_from_inetd" = "x" ] +then + echo "Run Samba as daemons or from inetd?" + echo -n "Press 'D' for to run as daemons or 'I' to run from inetd: [I] " + + read mode + test -n "$mode" || mode="I" + + case "$mode" in + [Dd]*) + run_from_inetd=0 + ;; + + *) + run_from_inetd=1 + ;; + esac +fi + +if [ "$run_from_inetd" = 1 ]; then + echo "Samba will run from inetd. Run sambaconfig to reconfigure." + echo "" + update-inetd --enable netbios-ssn + update-inetd --enable netbios-ns + run_mode="from_inetd" +else + echo "Samba will run as daemons. Run sambaconfig to reconfigure." + echo "" + update-inetd --disable netbios-ssn + update-inetd --disable netbios-ns + run_mode="as_daemons" +fi + +# Rebuild Debian configuration file (only thing that could have +# changed so far is the variable called "run_mode". + +# Start the Samba daemons (take care of whether the user used the --no-reload +# option and how Samba is running: from inetd or as daemons) +echo "config_version=$config_version" > $DEBIAN_CONFIG +echo "run_mode=$run_mode" >> $DEBIAN_CONFIG +echo "smbpasswd_created=$smbpasswd_created" >> $DEBIAN_CONFIG + +if [ "$reload" = 0 ]; then + echo "Samba will not start (--no-reload parameter provided). Please note" + echo "that if you configured Samba to run from inetd, the Samba daemons" + echo "will start automatically when there is traffic in the NetBIOS ports" +elif [ "$run_from_inetd" = 1 ]; then + echo "The --no-reload parameter was not provided so I assume you want" + echo "to have the Samba daemons started. Since you are running from inetd" + echo "the Samba daemosn will start automatically when there is traffic" + echo "in the NetBIOS ports." +else + echo -n "The --no-reload parameter was not provided, start Samba now? [Y/n] " + read yn + test -n "$yn" || yn="Y" + + case "$yn" in + [Nn]*) + echo "Not started; to start later, do: /etc/init.d/samba start" + echo -n "Press [ENTER] " + read line + ;; + + *) + /etc/init.d/samba start + ;; + esac +fi |