From 17bc78f53431ae026b33e46bee2bce67b17de665 Mon Sep 17 00:00:00 2001 From: edgd1er Date: Mon, 2 May 2022 20:39:21 +0200 Subject: [PATCH] add versions, removed sudo, powerusers group, --- docker/docker-py3-kms-minimal/Dockerfile | 2 -- docker/docker-py3-kms/Dockerfile | 4 ---- docker/entrypoint.py | 6 ++++-- docker/requirements.txt | 11 +++++------ docker/requirements_minimal.txt | 9 ++++----- docker/start.py | 6 +++--- 6 files changed, 16 insertions(+), 22 deletions(-) diff --git a/docker/docker-py3-kms-minimal/Dockerfile b/docker/docker-py3-kms-minimal/Dockerfile index a4483d9..7000606 100644 --- a/docker/docker-py3-kms-minimal/Dockerfile +++ b/docker/docker-py3-kms-minimal/Dockerfile @@ -26,9 +26,7 @@ bash \ tzdata \ netcat-openbsd \ && pip3 install --no-cache-dir -r /home/py-kms/requirements.txt \ - && addgroup power_users \ && adduser -S py-kms -G users -s /bin/bash \ - && usermod -aG power_users py-kms \ && chown py-kms:users /home/py-kms \ # Fix undefined timezone, in case the user did not mount the /etc/localtime && ln -sf /usr/share/zoneinfo/UTC /etc/localtime diff --git a/docker/docker-py3-kms/Dockerfile b/docker/docker-py3-kms/Dockerfile index 501da5b..a2f4c27 100644 --- a/docker/docker-py3-kms/Dockerfile +++ b/docker/docker-py3-kms/Dockerfile @@ -27,16 +27,12 @@ RUN apk add --no-cache --update \ ca-certificates \ tzdata \ shadow \ - sudo \ netcat-openbsd \ && pip3 install --no-cache-dir -r /home/py-kms/requirements.txt \ #&& apk del git build-base python3-dev \ && mkdir /db/ \ - && addgroup power_users \ && adduser -S py-kms -G users -s /bin/bash \ - && usermod -aG power_users py-kms \ && chown py-kms:users /home/py-kms \ - && echo "py-kms ALL= NOPASSWD: /bin/usermod -u py-kms *" >/etc/sudoers.d/py-kms \ # Fix undefined timezone, in case the user did not mount the /etc/localtime && ln -sf /usr/share/zoneinfo/UTC /etc/localtime diff --git a/docker/entrypoint.py b/docker/entrypoint.py index 575e32c..34a7e9a 100755 --- a/docker/entrypoint.py +++ b/docker/entrypoint.py @@ -31,7 +31,7 @@ def change_uid_grp(): loggersrv.info(f'not root user, cannot change uid/gid.') return None user_db_entries = pwd.getpwnam("py-kms") - user_grp_db_entries = grp.getgrnam("power_users") + user_grp_db_entries = grp.getgrnam("users") uid = int(user_db_entries.pw_uid) gid = int(user_grp_db_entries.gr_gid) new_gid = int(os.getenv('GID', str(gid))) @@ -66,13 +66,15 @@ def change_uid_grp(): def change_tz(): tz = os.getenv('TZ', 'etc/UTC') # TZ is not symlinked and defined TZ exists - if tz not in os.readlink('/etc/localtime') and os.path.isfile('/usr/share/zoneinfo/' + tz): + if tz not in os.readlink('/etc/localtime') and os.path.isfile('/usr/share/zoneinfo/' + tz) and hasattr(time, 'tzset'): loggersrv.info("Setting timzeone to %s" % tz ) + # time.tzet() should be called on Unix, but doesn't exist on Windows. time.tzset() # Main if (__name__ == "__main__"): loggersrv.info("Log level: %s" % log_level) + loggersrv.debug("user id: %s" % os.getuid()) change_tz() childProcess = subprocess.Popen(PYTHON3 + " -u /usr/bin/start.py", preexec_fn=change_uid_grp(), shell=True) def shutdown(signum, frame): diff --git a/docker/requirements.txt b/docker/requirements.txt index f5b6c76..bad41ef 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -1,6 +1,5 @@ -argparse -flask -pygments -dnspython -tzlocal -sqlite-web \ No newline at end of file +Flask==2.1.2 +Pygments==2.12.0 +dnspython==2.2.1 +tzlocal==4.2 +sqlite-web==0.4.0 \ No newline at end of file diff --git a/docker/requirements_minimal.txt b/docker/requirements_minimal.txt index 1edfc1c..509c137 100644 --- a/docker/requirements_minimal.txt +++ b/docker/requirements_minimal.txt @@ -1,5 +1,4 @@ -argparse -flask -pygments -dnspython -tzlocal \ No newline at end of file +Flask==2.1.2 +Pygments==2.12.0 +dnspython==2.2.1 +tzlocal==4.2 \ No newline at end of file diff --git a/docker/start.py b/docker/start.py index 90de633..84463ba 100644 --- a/docker/start.py +++ b/docker/start.py @@ -21,10 +21,9 @@ argumentVariableMapping = { } sqliteWebPath = '/home/sqlite_web/sqlite_web.py' -enableSQLITE = os.environ.get('SQLITE', 'false').lower() == 'true' -enableSQLITE = os.getenv('TYPE') != 'MINIMAL' +enableSQLITE = os.environ.get('SQLITE', 'false').lower() == 'true' and os.environ.get('TYPE') != 'MINIMAL' dbPath = os.path.join(os.sep, 'home', 'py-kms', 'db', 'pykms_database.db') -log_level_bootstrap = log_level = os.getenv('LOGLEVEL', 'INFO') +log_level_bootstrap = log_level = os.environ.get('LOGLEVEL', 'INFO') if log_level_bootstrap == "MININFO": log_level_bootstrap = "INFO" log_file = os.environ.get('LOGFILE', 'STDOUT') @@ -107,4 +106,5 @@ if (__name__ == "__main__"): datefmt='%a, %d %b %Y %H:%M:%S') streamhandler.setFormatter(formatter) loggersrv.addHandler(streamhandler) + loggersrv.debug("user id: %s" % os.getuid()) start_kms()