postinst is in freeradius 2.2.8+dfsg-0.1build2.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | #! /bin/sh
set -e
update_fs_from_statoverride() {
# I wish a simple dpkg-statoverride --update $file just did
# the right thing, but it doesn't, so we have to do it manually.
type=$1
user=$2
group=$3
mode=$4
file=$5
if [ -n "$type" -a -n "$group" -a -n "$mode" -a -n "$file" ]; then
if [ "$(find $file -maxdepth 0 -type $type -group $group -perm $mode)" = "" -a -$type $file ]; then
chgrp $group $file
chmod $mode $file
fi
fi
}
handle_config_files() {
runmode=$1
for file in /etc/freeradius/preproxy_users \
/etc/freeradius/policy.conf \
/etc/freeradius/eap.conf \
/etc/freeradius/experimental.conf \
/etc/freeradius/huntgroups \
/etc/freeradius/proxy.conf \
/etc/freeradius/attrs.pre-proxy \
/etc/freeradius/hints \
/etc/freeradius/sql.conf \
/etc/freeradius/ldap.attrmap \
/etc/freeradius/attrs \
/etc/freeradius/policy.txt \
/etc/freeradius/attrs.accounting_response \
/etc/freeradius/attrs.access_reject \
/etc/freeradius/attrs.access_challenge \
/etc/freeradius/clients.conf \
/etc/freeradius/acct_users
do
set +e
so=$(dpkg-statoverride --list $file)
ret=$?
set -e
case "$runmode" in
initial)
if [ $ret != 0 ]; then
dpkg-statoverride --add --update root freerad 0640 $file
fi
;;
upgrade)
update_fs_from_statoverride f $so
;;
esac
done
for dir in /etc/freeradius/certs \
/etc/freeradius/sites-available \
/etc/freeradius/sites-enabled
do
set +e
so=$(dpkg-statoverride --list $dir)
ret=$?
set -e
case "$runmode" in
initial)
if [ $ret != 0 ]; then
dpkg-statoverride --add --update freerad freerad 2751 $dir
fi
;;
upgrade)
update_fs_from_statoverride d $so
;;
esac
done
}
case "$1" in
configure)
if [ -z "$2" ]; then
# Changed in 1.1.5-1 for new installs (we used to start at S50
# and stop at K50) We now start at S50 and stop at K19 so we
# start after services which may be used and stop before them.
update-rc.d freeradius start 50 2 3 4 5 . stop 19 0 1 6 . >/dev/null
# Set up initial permissions on all the freeradius directories
if ! dpkg-statoverride --list /var/run/freeradius >/dev/null; then
dpkg-statoverride --add --update freerad freerad 0755 /var/run/freeradius
fi
if ! dpkg-statoverride --list /var/log/freeradius >/dev/null; then
dpkg-statoverride --add --update freerad freerad 0750 /var/log/freeradius
fi
for file in radius.log radwtmp; do
[ ! -f "/var/log/freeradius/${file}" ] && install -o freerad -g freerad -m 644 /dev/null /var/log/freeradius/${file}
done
handle_config_files initial
action="start"
else
handle_config_files upgrade
action="restart"
fi
# Create links for default sites, but only if this is an initial
# install or an upgrade from before there were links; users may
# want to remove them...
if [ -z "$2" ] || dpkg --compare-versions "$2" lt 2.0.4+dfsg-4; then
for site in default inner-tunnel; do
if [ ! -e /etc/freeradius/sites-enabled/$site ]; then
ln -s ../sites-available/$site /etc/freeradius/sites-enabled/$site
fi
done
fi
# Create stub SSL certificate file that became necessary in 2.1.8,
# with analogous disclaimers, because the admin may yet choose to
# switch to /usr/share/doc/freeradius/examples/certs/ stuff.
if [ -z "$2" ] || dpkg --compare-versions "$2" lt 2.1.8+dfsg-1; then
if egrep -q '^[ ]*\$INCLUDE eap.conf' /etc/freeradius/radiusd.conf && \
egrep -q '^[ ]*certdir = \${confdir}/certs' /etc/freeradius/eap.conf && \
egrep -q '^[ ]*cadir = \${confdir}/certs' /etc/freeradius/eap.conf
then
echo "Updating default SSL certificate settings, if any..." >&2
test -d /etc/freeradius/certs || mkdir /etc/freeradius/certs
if test ! -e /etc/ssl/certs/ssl-cert-snakeoil.pem || \
test ! -e /etc/ssl/private/ssl-cert-snakeoil.key
then
make-ssl-cert generate-default-snakeoil
fi
if egrep -q '^[ ]*certificate_file = \${certdir}/server.pem' /etc/freeradius/eap.conf && \
test ! -f /etc/freeradius/certs/server.pem
then
serverpem=wasnotthere
ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/freeradius/certs/server.pem
fi
if ( egrep -q '^[ ]*private_key_file = \${certdir}/server.pem' /etc/freeradius/eap.conf && \
[ "$serverpem" = "wasnotthere" ] ) \
|| \
( egrep -q '^[ ]*private_key_file = \${certdir}/server.key' /etc/freeradius/eap.conf && \
test ! -f /etc/freeradius/certs/server.key )
then
ln -s /etc/ssl/private/ssl-cert-snakeoil.key /etc/freeradius/certs/server.key
sed -i -e 's,^\([ ]*private_key_file = \${certdir}\)/server.pem$,\1/server.key,' /etc/freeradius/eap.conf
if getent group ssl-cert >/dev/null; then
# freeradius-common dependency also provides us with adduser
adduser --quiet freerad ssl-cert
fi
fi
if egrep -q '^[ ]*CA_file = \${cadir}/ca.pem' /etc/freeradius/eap.conf && \
test ! -f /etc/freeradius/certs/ca.pem
then
ln -s /etc/ssl/certs/ca-certificates.crt /etc/freeradius/certs/ca.pem
fi
if egrep -q '^[ ]*random_file = \${certdir}/random' /etc/freeradius/eap.conf && \
test ! -f /etc/freeradius/certs/random
then
sed -i -e 's,^\([ ]*random_file = \)\${certdir}/random$,\1/dev/urandom,' /etc/freeradius/eap.conf
fi
if egrep -q '^[ ]*dh_file = \${certdir}/dh' /etc/freeradius/eap.conf && \
test ! -f /etc/freeradius/certs/dh
then
# ssl-cert dependency also provides us with openssl
openssl dhparam -out /etc/freeradius/certs/dh 1024
fi
fi
fi
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
invoke-rc.d freeradius $action || true
else
/etc/init.d/freeradius $action
fi
;;
abort-upgrade)
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
invoke-rc.d freeradius restart || true
else
/etc/init.d/freeradius restart
fi
;;
abort-remove)
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
invoke-rc.d freeradius start || true
else
/etc/init.d/freeradius start
fi
;;
abort-deconfigure)
;;
esac
exit 0
|