From ddc11d8687d187a2ff7e2e006ea978bd13eff037 Mon Sep 17 00:00:00 2001 From: Dan Bungert Date: Tue, 3 Oct 2023 16:40:15 -0600 Subject: [PATCH] util: more control on file writer mode and group --- subiquitycore/file_util.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/subiquitycore/file_util.py b/subiquitycore/file_util.py index 0d2ac125..461e5396 100644 --- a/subiquitycore/file_util.py +++ b/subiquitycore/file_util.py @@ -29,7 +29,9 @@ _DEF_GROUP = "adm" log = logging.getLogger("subiquitycore.file_util") -def set_log_perms(target, *, isdir=True, group_write=False, mode=None): +def set_log_perms( + target, *, isdir=True, group_write=False, mode=None, group=_DEF_GROUP +): if os.getuid() != 0: log.warning( "set_log_perms: running as non-root - not adjusting" @@ -44,14 +46,11 @@ def set_log_perms(target, *, isdir=True, group_write=False, mode=None): if group_write: mode |= 0o020 os.chmod(target, mode) - os.chown(target, -1, grp.getgrnam(_DEF_GROUP).gr_gid) + os.chown(target, -1, grp.getgrnam(group).gr_gid) @contextlib.contextmanager -def open_perms(filename, *, mode=None): - if mode is None: - mode = _DEF_PERMS_FILE - +def open_perms(filename, **kwargs): tf = None try: dirname = os.path.dirname(filename) @@ -59,7 +58,7 @@ def open_perms(filename, *, mode=None): tf = tempfile.NamedTemporaryFile(dir=dirname, delete=False, mode="w") yield tf tf.close() - set_log_perms(tf.name, mode=mode) + set_log_perms(tf.name, **kwargs) os.rename(tf.name, filename) except OSError as e: if tf is not None: