mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2024-06-07 19:40:43 +00:00
Fixed UID/GID startup logic to properly handle running as root
Fixes #425
This commit is contained in:
parent
949faf1620
commit
e94f6608d2
28
start
28
start
@ -4,23 +4,41 @@ umask 0002
|
|||||||
chmod g+w /data
|
chmod g+w /data
|
||||||
|
|
||||||
if [ $(id -u) = 0 ]; then
|
if [ $(id -u) = 0 ]; then
|
||||||
if [[ -v UID && $UID != $(id -u) ]]; then
|
runAsUser=minecraft
|
||||||
usermod -u $UID 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
|
fi
|
||||||
|
|
||||||
if [[ -v GID ]]; then
|
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
|
fi
|
||||||
|
|
||||||
if [[ $(stat -c "%u" /data) != $UID ]]; then
|
if [[ $(stat -c "%u" /data) != $UID ]]; then
|
||||||
echo "Changing ownership of /data to $UID ..."
|
echo "Changing ownership of /data to $UID ..."
|
||||||
chown -R minecraft:minecraft /data
|
chown -R ${runAsUser}:${runAsGroup} /data
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${SKIP_NSSWITCH_CONF^^} != TRUE ]]; then
|
if [[ ${SKIP_NSSWITCH_CONF^^} != TRUE ]]; then
|
||||||
echo 'hosts: files dns' > /etc/nsswitch.conf
|
echo 'hosts: files dns' > /etc/nsswitch.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec su-exec minecraft:minecraft /start-configuration $@
|
exec su-exec ${runAsUser}:${runAsGroup} /start-configuration $@
|
||||||
else
|
else
|
||||||
exec /start-configuration $@
|
exec /start-configuration $@
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user