From 950099f9dcc7286de9525ef9be377d2251a48b96 Mon Sep 17 00:00:00 2001 From: David McFarlane <54093156+Prepultrue@users.noreply.github.com> Date: Wed, 18 Jan 2023 14:30:15 +1100 Subject: [PATCH] Set umask to 0000 while overlays are being built. Fixes #584 --- CHANGELOG.md | 1 + internal/pkg/overlay/overlay.go | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 079ea4de..650c6f49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - New man page for `defaults.conf` #593 - New debug overlay template +- Fix directories within overlays losing group/other write permissions #584 ## [4.4.0rc2] 2022-12-09 diff --git a/internal/pkg/overlay/overlay.go b/internal/pkg/overlay/overlay.go index 06ddc1fa..66443f93 100644 --- a/internal/pkg/overlay/overlay.go +++ b/internal/pkg/overlay/overlay.go @@ -11,6 +11,7 @@ import ( "path/filepath" "regexp" "strings" + "syscall" "text/template" "github.com/hpcng/warewulf/internal/pkg/node" @@ -197,6 +198,9 @@ func BuildOverlayIndir(nodeInfo node.NodeInfo, overlayNames []string, outputDir return errors.Errorf("overlay names contains illegal characters: %v", overlayNames) } + // Temporarily set umask to 0000, so directories in the overlay retain permissions + defer syscall.Umask(syscall.Umask(0)) + wwlog.Verbose("Processing node/overlay: %s/%s", nodeInfo.Id.Get(), strings.Join(overlayNames, "-")) for _, overlayName := range overlayNames { wwlog.Verbose("Building overlay %s for node %s in %s", overlayName, nodeInfo.Id.Get(), outputDir)