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
|
#!/bin/sh
set -e
#DEBHELPER#
# see https://www.debian.org/doc/manuals/securing-debian-manual/bpp-lower-privs.en.html
case "$1" in
install|upgrade)
# Defaults can be overridden in the default file
[ -f "/etc/default/llama-server" ] && . /etc/default/llama-server
[ -z "$SERVER_HOME" ] && SERVER_HOME=/var/lib/llama-server
[ -z "$SERVER_CACHE" ] && SERVER_CACHE=/var/cache/llama-server
[ -z "$SERVER_NAME" ] && SERVER_NAME="llama.cpp server"
[ -z "$SERVER_USER" ] && SERVER_USER=_llama-server
[ -z "$SERVER_GROUP" ] && SERVER_GROUP=_llama-server
# Create server group if not existing
if ! getent group "$SERVER_GROUP" | grep -q "^$SERVER_GROUP:" ; then
printf "Adding group %s.." "$SERVER_GROUP"
addgroup --quiet --system "$SERVER_GROUP" 2>/dev/null
echo "..done"
else
echo "System group '$SERVER_GROUP' already exists"
fi
# Create server home directory if not existing
test -d "$SERVER_HOME" || mkdir "$SERVER_HOME"
# Create server system user if not existing
if ! getent passwd "$SERVER_USER" | grep -q "^$SERVER_USER:"; then
printf "Adding system user %s.." "$SERVER_USER"
adduser --quiet \
--system \
--comment "$SERVER_NAME" \
--ingroup "$SERVER_GROUP" \
--home "$SERVER_HOME" \
--shell /usr/sbin/nologin \
--no-create-home \
--disabled-password \
"$SERVER_USER" 2>/dev/null
echo "..done"
else
echo "System user '$SERVER_USER' already exists"
fi
# Adjust file and directory permissions
if ! dpkg-statoverride --list "$SERVER_HOME" >/dev/null
then
chown "$SERVER_USER":"$SERVER_GROUP" "$SERVER_HOME"
chmod u=rwx "$SERVER_HOME"
fi
if ! dpkg-statoverride --list "$SERVER_CACHE" >/dev/null
then
mkdir -p "$SERVER_CACHE"
chown "$SERVER_USER":"$SERVER_GROUP" "$SERVER_CACHE"
chmod u=rwx "$SERVER_CACHE"
fi
;;
*)
esac
|