summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorMichael Hoang <enzime@users.noreply.github.com>2024-11-03 20:30:48 +1100
committerMichael Hoang <enzime@users.noreply.github.com>2024-11-07 17:31:22 +1100
commit3b738c765de1bb4ecc4993fa092b27dd46d495ed (patch)
tree205889fb0837db28e060f216f0b184948110483f /modules
parentcf130aa9579fc1708ff4a265d2108eefa535e9b2 (diff)
github-runner: replace `mkdir -p -m` with `umask`
`mkdir -p -m` only applies the mode on the deepest directory which could be a security issue so we use umask to be more careful.
Diffstat (limited to 'modules')
-rw-r--r--modules/services/github-runner/service.nix22
1 files changed, 14 insertions, 8 deletions
diff --git a/modules/services/github-runner/service.nix b/modules/services/github-runner/service.nix
index 175b22d..c273f43 100644
--- a/modules/services/github-runner/service.nix
+++ b/modules/services/github-runner/service.nix
@@ -48,14 +48,20 @@ in
text = mkBefore (''
echo >&2 "setting up GitHub Runner '${cfg.name}'..."
- ${pkgs.coreutils}/bin/mkdir -p -m 0750 ${escapeShellArg (mkStateDir cfg)}
- ${pkgs.coreutils}/bin/chown ${user}:${group} ${escapeShellArg (mkStateDir cfg)}
-
- ${pkgs.coreutils}/bin/mkdir -p -m 0750 ${escapeShellArg (mkLogDir cfg)}
- ${pkgs.coreutils}/bin/chown ${user}:${group} ${escapeShellArg (mkLogDir cfg)}
- '' + optionalString (cfg.workDir == null) ''
- ${pkgs.coreutils}/bin/mkdir -p -m 0750 ${escapeShellArg (mkWorkDir cfg)}
- ${pkgs.coreutils}/bin/chown ${user}:${group} ${escapeShellArg (mkWorkDir cfg)}
+ (
+ umask -S u=rwx,g=rx,o=
+
+ ${pkgs.coreutils}/bin/mkdir -p ${escapeShellArg (mkStateDir cfg)}
+ ${pkgs.coreutils}/bin/chown ${user}:${group} ${escapeShellArg (mkStateDir cfg)}
+
+ ${pkgs.coreutils}/bin/mkdir -p ${escapeShellArg (mkLogDir cfg)}
+ ${pkgs.coreutils}/bin/chown ${user}:${group} ${escapeShellArg (mkLogDir cfg)}
+
+ ${optionalString (cfg.workDir == null) ''
+ ${pkgs.coreutils}/bin/mkdir -p ${escapeShellArg (mkWorkDir cfg)}
+ ${pkgs.coreutils}/bin/chown ${user}:${group} ${escapeShellArg (mkWorkDir cfg)}
+ ''}
+ )
'');
};
}));