add versions, removed sudo, powerusers group,

This commit is contained in:
edgd1er 2022-05-02 20:39:21 +02:00
parent 90b4af2627
commit 17bc78f534
No known key found for this signature in database
GPG key ID: F7B8E0D6C867CCAE
6 changed files with 16 additions and 22 deletions

View file

@ -26,9 +26,7 @@ bash \
tzdata \ tzdata \
netcat-openbsd \ netcat-openbsd \
&& pip3 install --no-cache-dir -r /home/py-kms/requirements.txt \ && pip3 install --no-cache-dir -r /home/py-kms/requirements.txt \
&& addgroup power_users \
&& adduser -S py-kms -G users -s /bin/bash \ && adduser -S py-kms -G users -s /bin/bash \
&& usermod -aG power_users py-kms \
&& chown py-kms:users /home/py-kms \ && chown py-kms:users /home/py-kms \
# Fix undefined timezone, in case the user did not mount the /etc/localtime # Fix undefined timezone, in case the user did not mount the /etc/localtime
&& ln -sf /usr/share/zoneinfo/UTC /etc/localtime && ln -sf /usr/share/zoneinfo/UTC /etc/localtime

View file

@ -27,16 +27,12 @@ RUN apk add --no-cache --update \
ca-certificates \ ca-certificates \
tzdata \ tzdata \
shadow \ shadow \
sudo \
netcat-openbsd \ netcat-openbsd \
&& pip3 install --no-cache-dir -r /home/py-kms/requirements.txt \ && pip3 install --no-cache-dir -r /home/py-kms/requirements.txt \
#&& apk del git build-base python3-dev \ #&& apk del git build-base python3-dev \
&& mkdir /db/ \ && mkdir /db/ \
&& addgroup power_users \
&& adduser -S py-kms -G users -s /bin/bash \ && adduser -S py-kms -G users -s /bin/bash \
&& usermod -aG power_users py-kms \
&& chown py-kms:users /home/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 # Fix undefined timezone, in case the user did not mount the /etc/localtime
&& ln -sf /usr/share/zoneinfo/UTC /etc/localtime && ln -sf /usr/share/zoneinfo/UTC /etc/localtime

View file

@ -31,7 +31,7 @@ def change_uid_grp():
loggersrv.info(f'not root user, cannot change uid/gid.') loggersrv.info(f'not root user, cannot change uid/gid.')
return None return None
user_db_entries = pwd.getpwnam("py-kms") 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) uid = int(user_db_entries.pw_uid)
gid = int(user_grp_db_entries.gr_gid) gid = int(user_grp_db_entries.gr_gid)
new_gid = int(os.getenv('GID', str(gid))) new_gid = int(os.getenv('GID', str(gid)))
@ -66,13 +66,15 @@ def change_uid_grp():
def change_tz(): def change_tz():
tz = os.getenv('TZ', 'etc/UTC') tz = os.getenv('TZ', 'etc/UTC')
# TZ is not symlinked and defined TZ exists # 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 ) loggersrv.info("Setting timzeone to %s" % tz )
# time.tzet() should be called on Unix, but doesn't exist on Windows.
time.tzset() time.tzset()
# Main # Main
if (__name__ == "__main__"): if (__name__ == "__main__"):
loggersrv.info("Log level: %s" % log_level) loggersrv.info("Log level: %s" % log_level)
loggersrv.debug("user id: %s" % os.getuid())
change_tz() change_tz()
childProcess = subprocess.Popen(PYTHON3 + " -u /usr/bin/start.py", preexec_fn=change_uid_grp(), shell=True) childProcess = subprocess.Popen(PYTHON3 + " -u /usr/bin/start.py", preexec_fn=change_uid_grp(), shell=True)
def shutdown(signum, frame): def shutdown(signum, frame):

View file

@ -1,6 +1,5 @@
argparse Flask==2.1.2
flask Pygments==2.12.0
pygments dnspython==2.2.1
dnspython tzlocal==4.2
tzlocal sqlite-web==0.4.0
sqlite-web

View file

@ -1,5 +1,4 @@
argparse Flask==2.1.2
flask Pygments==2.12.0
pygments dnspython==2.2.1
dnspython tzlocal==4.2
tzlocal

View file

@ -21,10 +21,9 @@ argumentVariableMapping = {
} }
sqliteWebPath = '/home/sqlite_web/sqlite_web.py' sqliteWebPath = '/home/sqlite_web/sqlite_web.py'
enableSQLITE = os.environ.get('SQLITE', 'false').lower() == 'true' enableSQLITE = os.environ.get('SQLITE', 'false').lower() == 'true' and os.environ.get('TYPE') != 'MINIMAL'
enableSQLITE = os.getenv('TYPE') != 'MINIMAL'
dbPath = os.path.join(os.sep, 'home', 'py-kms', 'db', 'pykms_database.db') 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": if log_level_bootstrap == "MININFO":
log_level_bootstrap = "INFO" log_level_bootstrap = "INFO"
log_file = os.environ.get('LOGFILE', 'STDOUT') log_file = os.environ.get('LOGFILE', 'STDOUT')
@ -107,4 +106,5 @@ if (__name__ == "__main__"):
datefmt='%a, %d %b %Y %H:%M:%S') datefmt='%a, %d %b %Y %H:%M:%S')
streamhandler.setFormatter(formatter) streamhandler.setFormatter(formatter)
loggersrv.addHandler(streamhandler) loggersrv.addHandler(streamhandler)
loggersrv.debug("user id: %s" % os.getuid())
start_kms() start_kms()