diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-01-04 09:25:20 -0500 | 
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-01-04 09:25:20 -0500 | 
| commit | d8e4c43827fab188dcfd98fe18bc75d8479d723e (patch) | |
| tree | 05559567e099837efbcb6ff537353715db5d700b /debian/frr.preinst | |
| parent | 80e71dcd1fffe1126954d30c13897d90512329fa (diff) | |
debian: Convert Quagga -> Frr
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'debian/frr.preinst')
| -rw-r--r-- | debian/frr.preinst | 79 | 
1 files changed, 79 insertions, 0 deletions
diff --git a/debian/frr.preinst b/debian/frr.preinst new file mode 100644 index 0000000000..abdaa7277b --- /dev/null +++ b/debian/frr.preinst @@ -0,0 +1,79 @@ +#!/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 + +# creating frrvty group if it isn't already there +if ! getent group frrvty >/dev/null; then +        addgroup --system frrvty >/dev/null +fi + +# creating frr group if it isn't already there +if ! getent group frr >/dev/null; then +        addgroup --system frr >/dev/null +fi + +# creating frr user if he isn't already there +if ! getent passwd frr >/dev/null; then +        adduser \ +          --system \ +          --ingroup frr \ +          --home /var/run/frr/ \ +          --gecos "Frr routing suite" \ +          --shell /bin/false \ +          frr  >/dev/null +fi + +# We may be installing over an older version of +# frr and as such we need to intelligently +# check to see if the frr user is in the frrvty +# group. +if ! /usr/bin/id frr | grep &>/dev/null 'frrvty'; then +    usermod -a -G frrvty frr >/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 frr group. +  d=/var/log/frr/ +    mkdir -p $d +    chown -R frr:frr $d +    chmod u=rwx,go=rx $d +    find $d -type f -print0 | xargs -0 --no-run-if-empty   chmod u=rw,g=r,o= + +  # Strict permissions for the sockets. +  d=/var/run/frr/ +    mkdir -p $d +    chown -R frr:frr $d +    chmod u=rwx,go=rx $d +    find $d -type f -print0 | xargs -0 --no-run-if-empty   chmod u=rw,go= + +  # Config files. Vtysh does not have access to the individual daemons config file +  d=/etc/frr/ +    mkdir -p $d +    chown frr:frrvty $d +    chmod ug=rwx,o=rx $d +    find $d -type f -print0 | xargs -0 --no-run-if-empty   chown frr:frr +    find $d -type f -print0 | xargs -0 --no-run-if-empty   chmod u=rw,g=r,o= + +    # Exceptions for vtysh. +    f=$d/vtysh.conf +    if [ -f $f ]; then +      chown frr:frrvty $f +      chmod u=rw,g=r,o= $f +    fi + +    # Exceptions for vtysh. +    f=$d/Frr.conf +    if [ -f $d/Zebra.conf ]; then +      mv $d/Zebra.conf $f +    fi +    if [ -f $f ]; then +      chown frr:frrvty $f +      chmod u=rw,g=r,o= $f +    fi +fi + +#DEBHELPER#  | 
