diff options
| author | Michael Hoang <enzime@users.noreply.github.com> | 2024-11-03 20:30:48 +1100 |
|---|---|---|
| committer | Michael Hoang <enzime@users.noreply.github.com> | 2024-11-07 17:31:22 +1100 |
| commit | 3b738c765de1bb4ecc4993fa092b27dd46d495ed (patch) | |
| tree | 205889fb0837db28e060f216f0b184948110483f | |
| parent | cf130aa9579fc1708ff4a265d2108eefa535e9b2 (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.
| -rw-r--r-- | modules/services/github-runner/service.nix | 22 |
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)} + ''} + ) ''); }; })); |
