From 6fc0c465f0431d7f5bc4d689724b188595c72467 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Tue, 11 Aug 2020 20:19:00 +1000 Subject: [PATCH 1/3] 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) From 3a425daeeab22b0cfe6c72195c5950f669d8cb4e Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Sun, 12 Jul 2026 08:31:52 +1000 Subject: [PATCH 2/3] Fix broken merge --- tools/arkmanager | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index bea37740..aa7325ae 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -243,7 +243,7 @@ runAsRoot(){ exit 1 else echo "Attempting to drop privileges; re-running as $steamcmd_user" >&2 - exec "${arkstRunUserCommandOverride:-/sbin/runuser}" "$steamcmd_user" -s "$steamcmd_user_shellexec" -c "$(printf "%q" "$0")$(printf " %q" "$@")" --runfromroot$(printf " %q" "$@")" + exec "${arkstRunUserCommandOverride:-/sbin/runuser}" "$steamcmd_user" -s "$steamcmd_user_shellexec" -c "$(printf "%q" "${arkstScriptPath}") --runfromroot"$(printf " %q" "$@")" exit 1 fi } From fccce3e22a82dcf6b3f450ec3b7feec865e3177d Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Sun, 12 Jul 2026 08:34:32 +1000 Subject: [PATCH 3/3] Fix stray quote --- tools/arkmanager | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index aa7325ae..fe346f77 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -243,7 +243,7 @@ runAsRoot(){ exit 1 else echo "Attempting to drop privileges; re-running as $steamcmd_user" >&2 - exec "${arkstRunUserCommandOverride:-/sbin/runuser}" "$steamcmd_user" -s "$steamcmd_user_shellexec" -c "$(printf "%q" "${arkstScriptPath}") --runfromroot"$(printf " %q" "$@")" + exec "${arkstRunUserCommandOverride:-/sbin/runuser}" "$steamcmd_user" -s "$steamcmd_user_shellexec" -c "$(printf "%q" "${arkstScriptPath}") --runfromroot$(printf " %q" "$@")" exit 1 fi }