From e94f6608d22f7368f690081d570cb05872d7f81c Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Fri, 17 Jan 2020 08:27:11 -0600 Subject: [PATCH] Fixed UID/GID startup logic to properly handle running as root Fixes #425 --- start | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/start b/start index 94a654fd..69ed3d53 100644 --- a/start +++ b/start @@ -4,23 +4,41 @@ umask 0002 chmod g+w /data if [ $(id -u) = 0 ]; then - if [[ -v UID && $UID != $(id -u) ]]; then - usermod -u $UID minecraft + runAsUser=minecraft + runAsGroup=minecraft + + if [[ -v UID ]]; then + if [[ $UID != 0 ]]; then + if [[ $UID != $(id -u minecraft) ]]; then + echo "Changing uid of minecraft to $UID" + usermod -u $UID minecraft + fi + else + runAsUser=root + fi fi + if [[ -v GID ]]; then - groupmod -o -g $GID minecraft + if [[ $GID != 0 ]]; then + if [[ $GID != $(id -g minecraft) ]]; then + echo "Changing gid of minecraft to $GID" + groupmod -o -g $GID minecraft + fi + else + runAsGroup=root + fi fi if [[ $(stat -c "%u" /data) != $UID ]]; then echo "Changing ownership of /data to $UID ..." - chown -R minecraft:minecraft /data + chown -R ${runAsUser}:${runAsGroup} /data fi if [[ ${SKIP_NSSWITCH_CONF^^} != TRUE ]]; then echo 'hosts: files dns' > /etc/nsswitch.conf fi - exec su-exec minecraft:minecraft /start-configuration $@ + exec su-exec ${runAsUser}:${runAsGroup} /start-configuration $@ else exec /start-configuration $@ fi