From fbd75687da15d41cabaeea3e3376f5fc35eea38a Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Tue, 2 Feb 2016 04:02:21 +1000 Subject: [PATCH] Have systemd (and upstart) run the script as the user --- tools/install.sh | 6 +++--- tools/systemd/arkmanager@.service | 1 + tools/upstart/arkmanager-instance.conf | 2 ++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 3ac4df4..cb724f6 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -215,7 +215,7 @@ else cp systemd/arkmanager.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" sed -i "s|=/usr/libexec/arkmanager/|=${LIBEXECDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" cp systemd/arkmanager@.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager@.service" - sed -i "s|=/usr/bin/|=${BINDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager@.service" + sed -i "s|=/usr/bin/|=${BINDIR}/|;s|=steam$|=${steamcmd_user}|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager@.service" if [ -z "${INSTALL_ROOT}" ]; then systemctl daemon-reload systemctl enable arkmanager.service @@ -243,7 +243,7 @@ else cp systemd/arkmanager.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" sed -i "s|=/usr/libexec/arkmanager/|=${LIBEXECDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" cp systemd/arkmanager@.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager@.service" - sed -i "s|=/usr/bin/|=${BINDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager@.service" + sed -i "s|=/usr/bin/|=${BINDIR}/|;s|=steam$|=${steamcmd_user}|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager@.service" if [ -z "${INSTALL_ROOT}" ]; then systemctl daemon-reload systemctl enable arkmanager.service @@ -277,7 +277,7 @@ else cp systemd/arkmanager.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" sed -i "s|=/usr/libexec/arkmanager/|=${LIBEXECDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" cp systemd/arkmanager@.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager@.service" - sed -i "s|=/usr/bin/|=${BINDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager@.service" + sed -i "s|=/usr/bin/|=${BINDIR}/|;s|=steam$|=${steamcmd_user}|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager@.service" if [ -z "${INSTALL_ROOT}" ]; then systemctl daemon-reload systemctl enable arkmanager.service diff --git a/tools/systemd/arkmanager@.service b/tools/systemd/arkmanager@.service index 49b722c..4c92d0f 100644 --- a/tools/systemd/arkmanager@.service +++ b/tools/systemd/arkmanager@.service @@ -2,5 +2,6 @@ Description=Daemon to start an ark server instance [Service] +User=steam ExecStart=/usr/bin/arkmanager useconfig %i run Type=simple diff --git a/tools/upstart/arkmanager-instance.conf b/tools/upstart/arkmanager-instance.conf index 0b219a4..4f203bf 100644 --- a/tools/upstart/arkmanager-instance.conf +++ b/tools/upstart/arkmanager-instance.conf @@ -2,6 +2,8 @@ description "ARK Server Tools service" instance $service +setuid steam + env DAEMON="/usr/bin/arkmanager" exec "$DAEMON" useconfig $service run