summaryrefslogtreecommitdiffstats
path: root/debian/vyatta-quagga.preinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/vyatta-quagga.preinst')
-rw-r--r--debian/vyatta-quagga.preinst89
1 files changed, 89 insertions, 0 deletions
diff --git a/debian/vyatta-quagga.preinst b/debian/vyatta-quagga.preinst
new file mode 100644
index 00000000..29c18b2b
--- /dev/null
+++ b/debian/vyatta-quagga.preinst
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
+${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*"}
+set -e
+set -u
+
+LOG_DIR=/var/log/vyatta/quagga
+LOG_PDIR=${LOG_DIR%/*}
+RUN_DIR=/var/run/vyatta/quagga
+RUN_PDIR=${RUN_DIR%/*}
+ETC_DIR=/etc/vyatta/quagga
+ETC_PDIR=${ETC_DIR%/*}
+
+# creating quaggavty group if it isn't already there
+if ! getent group quaggavty >/dev/null; then
+ addgroup --system quaggavty >/dev/null
+fi
+
+# creating quagga group if it isn't already there
+if ! getent group quagga >/dev/null; then
+ addgroup --system quagga >/dev/null
+fi
+
+# creating quagga user if he isn't already there
+if ! getent passwd quagga >/dev/null; then
+ adduser \
+ --system \
+ --ingroup quagga \
+ --home /var/run/vyatta/ \
+ --gecos "Vyatta Quagga routing suite" \
+ --shell /bin/false \
+ quagga >/dev/null
+fi
+
+# Do not change permissions when upgrading as it would violate policy.
+if [ "$1" = "install" ]; then
+
+ # Logfiles are group readable in case users were put into the quagga group.
+ mkdir -p $LOG_PDIR
+ chmod 0755 $LOG_PDIR
+ mkdir -p $LOG_DIR
+ chmod 0775 $LOG_DIR
+ chown quagga:quagga $LOG_DIR
+
+ # Strict permissions for the sockets.
+ mkdir -p $RUN_PDIR
+ chmod 0755 $RUN_PDIR
+ mkdir -p $RUN_DIR
+ chmod 0755 $RUN_DIR
+ chown quagga:quagga $RUN_DIR
+
+ # create empty config files
+ mkdir -p $ETC_PDIR
+ chmod 0755 $ETC_PDIR
+ mkdir -p $ETC_DIR
+ chmod 0775 $ETC_DIR
+ chown quagga:quaggavty $ETC_DIR
+ for daemon in zebra ripd ripngd ospfd ospf6d isisd bgpd ; do
+ if [ ! -e $ETC_DIR/${daemon}.conf ] ; then
+ touch $ETC_DIR/${daemon}.conf
+ chown quagga:quaggavty $ETC_DIR/${daemon}.conf
+ chmod 0640 $ETC_DIR/${daemon}.conf
+ cat <<-EOF > $ETC_DIR/${daemon}.conf
+ log syslog
+ log facility local7
+ EOF
+ fi
+ done
+
+
+ echo "smux peer .1.3.6.1.4.1.3317.1.2.5" >> $ETC_DIR/ospfd.conf
+ echo "smux peer .1.3.6.1.4.1.3317.1.2.2" >> $ETC_DIR/bgpd.conf
+ echo "smux peer .1.3.6.1.4.1.3317.1.2.3" >> $ETC_DIR/ripd.conf
+
+ if [ ! -e $ETC_DIR/vtysh.conf ] ; then
+ touch $ETC_DIR/vtysh.conf
+ chown quagga:quaggavty $ETC_DIR/vtysh.conf
+ chmod 0640 $ETC_DIR/vtysh.conf
+ cat <<-EOF >> $ETC_DIR/vtysh.conf
+ username root nopassword
+ EOF
+ fi
+
+ # Disable debian/ubuntu package init
+ update-rc.d -f quagga remove
+fi
+
+#DEBHELPER#