diff --git a/warden_filer/warden_filer.py b/warden_filer/warden_filer.py index 86b2bba460c28162ad0ab5deee7398ef1c04a69f..83a7aec48c5bcfc58e9479ffc2b8eca20e393eed 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 = {