From 886c85e1a37e256cde405db5e68bd7a2f6526065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20=C3=81lvaro?= Date: Fri, 9 Nov 2018 23:44:16 +0100 Subject: [PATCH] Run salt-master as salt user --- Dockerfile | 2 +- assets/build/functions.sh | 13 +++++++++++++ assets/build/install.sh | 15 +++++++++++---- assets/runtime/functions.sh | 16 ++++++++++++++-- docker-compose.yml | 4 ++-- entrypoint.sh | 2 +- 6 files changed, 42 insertions(+), 10 deletions(-) create mode 100755 assets/build/functions.sh diff --git a/Dockerfile b/Dockerfile index 1033ede..c53f610 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,7 +40,7 @@ WORKDIR ${SALT_BUILD_DIR} # Install packages RUN apt-get update RUN apt-get install --yes --quiet --no-install-recommends \ - ca-certificates wget locales pkg-config openssh-client \ + sudo ca-certificates wget locales pkg-config openssh-client \ python${PYTHON_VERSION} python${PYTHON_VERSION}-dev \ python3-pip python3-setuptools python3-wheel diff --git a/assets/build/functions.sh b/assets/build/functions.sh new file mode 100755 index 0000000..a8a7bf6 --- /dev/null +++ b/assets/build/functions.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -e + +# Execute a command as SALT_USER +function exec_as_salt() +{ + if [[ $(whoami) == ${SALT_USER} ]]; then + $@ + else + sudo -HEu ${SALT_USER} "$@" + fi +} diff --git a/assets/build/install.sh b/assets/build/install.sh index bfb3f86..8e79080 100755 --- a/assets/build/install.sh +++ b/assets/build/install.sh @@ -2,6 +2,8 @@ set -e +source ${SALT_BUILD_DIR}/functions.sh + # Install build dependencies echo "Installing dependencies ..." BUILD_DEPENDENCIES="gnupg git cmake gcc g++ make \ @@ -10,6 +12,15 @@ BUILD_DEPENDENCIES="gnupg git cmake gcc g++ make \ apt-get install --yes --quiet --no-install-recommends ${BUILD_DEPENDENCIES} +# Create salt user +echo "Creating ${SALT_USER} user ..." +useradd -d ${SALT_HOME} -ms /bin/bash -U -G root,sudo ${SALT_USER} + +# Set PATH +exec_as_salt cat >> ${SALT_HOME}/.profile <