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
|
#!/bin/sh
set -e
# POSIX-compliant maint function recommend by devref
# to check for the existence of a command
# https://www.debian.org/doc/manuals/developers-reference/ch06.html#bpp-debian-maint-scripts
pathfind() {
OLDIFS="$IFS"
IFS=:
for p in $PATH; do
if [ -x "$p/$*" ]; then
IFS="$OLDIFS"
return 0
fi
done
IFS="$OLDIFS"
return 1
}
case "$1" in
configure|reconfigure)
if pathfind setcap; then
if ! setcap \
cap_net_bind_service+ep /usr/bin/ss-local \
cap_net_bind_service,cap_net_admin+ep /usr/bin/ss-redir \
cap_net_bind_service+ep /usr/bin/ss-server \
cap_net_bind_service+ep /usr/bin/ss-tunnel; then
echo "Failed to set capabilities; ss-* will only be runnable by root."
fi
else
echo "setcap not installed; ss-* will only be runnable by root."
fi
if [ ! -f /etc/shadowsocks-libev/config.json ]; then
set +e
passwd=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 12)
set -e
mkdir -p /etc/shadowsocks-libev
sed "s/barfoo!/$passwd/" /usr/share/shadowsocks-libev/config.json \
> /etc/shadowsocks-libev/config.json
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
exit 0
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
#DEBHELPER#
exit 0
|