From 16f5f904b38ef8dc5c36c544fdeb7be73a44680d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20K=C3=A1cha?= <ph@cesnet.cz> Date: Tue, 21 Nov 2023 22:27:36 +0100 Subject: [PATCH] Allow warden_filer to also accept textual usernames/groupnames on uid/gid --- warden_filer/warden_filer.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/warden_filer/warden_filer.py b/warden_filer/warden_filer.py index 86b2bba..83a7aec 100755 --- a/warden_filer/warden_filer.py +++ b/warden_filer/warden_filer.py @@ -470,6 +470,18 @@ def get_configs(): +def get_uid_gid(str_id, get_nam_func): + if str_id: + try: + id = int(str_id) + except ValueError: + id = get_nam_func(str_id)[2] + else: + id = None + return id + + + if __name__ == "__main__": args = get_args() @@ -482,12 +494,17 @@ if __name__ == "__main__": try: if args.daemon: + from pwd import getpwnam + from grp import getgrnam + uid = get_uid_gid(fconfig.get("uid"), getpwnam) + gid = get_uid_gid(fconfig.get("gid"), getgrnam) + daemonize( work_dir = fconfig.get("work_dir", "."), chroot_dir = fconfig.get("chroot_dir"), umask = fconfig.get("umask"), - uid = fconfig.get("uid"), - gid = fconfig.get("gid"), + uid = uid, + gid = gid, pidfile = args.pid_file, files_preserve = get_logger_files(wclient.logger), signals = { -- GitLab