summaryrefslogtreecommitdiffstats
path: root/debian/vyatta-quagga.preinst
blob: 29c18b2b0c733aa82b3f29da8b7bc63c859afb9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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#