From 6fc0c465f0431d7f5bc4d689724b188595c72467 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Tue, 11 Aug 2020 20:19:00 +1000 Subject: [PATCH] Add option to override command used to drop privileges Inspired by https://github.com/tberg/ark-server-tools/tree/4cf0c77b8e5f16e3a0eb002f511f53c40af87b93 --- tools/arkmanager | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 60166e12..7f7f8d51 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -27,6 +27,9 @@ arkstUsePkgManager='' # Set this to allow variable expansion in variables sourced from arkmanager.cfg arkstRootUseEnv='' +# Set this to override the command used to drop privileges +arkstRunUserCommandOverride='' + # Set this to override the main fork arkstGithubRepoOverride='' @@ -89,6 +92,7 @@ doUpgradeToolsFromCommit(){ sed -i -e "s|^arkstCommit='.*'|arkstCommit='${commit}'|" \ -e "s|^arkstTag='.*'|arkstTag='${tagname}'|" \ -e "s|^arkstRootUseEnv='.*'|arkstRootUseEnv='${arkstRootUseEnv}'|" \ + -e "s|^arkstRunUserCommandOverride='.*'|arkstRunUserCommandOverride='${arkstRunUserCommandOverride}'|" \ -e "s|^arkstGithubRepoOverride='.*'|arkstGithubRepoOverride='${arkstGithubRepoOverride}'|" \ -e "s|^arkstGlobalCfgFileOverride='.*'|arkstGlobalCfgFileOverride='${arkstGlobalCfgFileOverride}'|" \ -e "s|^arkstUserCfgFileOverride='.*'|arkstUserCfgFileOverride='${arkstUserCfgFileOverride}'|" \ @@ -231,7 +235,7 @@ runAsRoot(){ echo "Error: steamcmd_user is root; aborting" exit 1 else - exec /sbin/runuser "$steamcmd_user" -s "$steamcmd_user_shellexec" -c "$(printf "%q" "$0")$(printf " %q" "$@")" + exec "${arkstRunUserCommandOverride:-/sbin/runuser}" "$steamcmd_user" -s "$steamcmd_user_shellexec" -c "$(printf "%q" "$0")$(printf " %q" "$@")" exit 1 fi } @@ -3826,8 +3830,8 @@ main(){ if [ -n "${arkstTag}" ]; then echo "Release Tag: ${arkstTag}" fi - blobsize="$(sed "s@^\\(arkst\\(Commit\\|Tag\\|RootUseEnv\\|UsePkgManager\\|GithubRepoOverride\\|GlobalCfgFileOverride\\|UserCfgFileOverride\\)\\)=.*@\\1=''@" "$0" | wc -c)" - echo "Blob SHA: $( (echo -ne "blob ${blobsize}\0"; sed "s@^\\(arkst\\(Commit\\|Tag\\|RootUseEnv\\|UsePkgManager\\|GithubRepoOverride\\|GlobalCfgFileOverride\\|UserCfgFileOverride\\)\\)=.*@\\1=''@" "$0") | sha1sum | cut -d' ' -f1)" + blobsize="$(sed "s@^\\(arkst\\(Commit\\|Tag\\|RootUseEnv\\|UsePkgManager\\|RunUserCommandOverride\\|GithubRepoOverride\\|GlobalCfgFileOverride\\|UserCfgFileOverride\\)\\)=.*@\\1=''@" "$0" | wc -c)" + echo "Blob SHA: $( (echo -ne "blob ${blobsize}\0"; sed "s@^\\(arkst\\(Commit\\|Tag\\|RootUseEnv\\|UsePkgManager\\|RunUserCommandOverride\\|GithubRepoOverride\\|GlobalCfgFileOverride\\|UserCfgFileOverride\\)\\)=.*@\\1=''@" "$0") | sha1sum | cut -d' ' -f1)" exit 1 ;; -h|--help)