From 0f2750b644657016c18c5743ad17a4c68e2b063d Mon Sep 17 00:00:00 2001 From: blake Date: Thu, 16 Oct 2025 20:36:42 -0500 Subject: [PATCH] final adjustments to the slop --- hosts/snowbelle/configuration.nix | 1 + modules/holocron/perms/default.nix | 58 ++++++++++++++++-------------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/hosts/snowbelle/configuration.nix b/hosts/snowbelle/configuration.nix index 2ddc437..f0d23da 100644 --- a/hosts/snowbelle/configuration.nix +++ b/hosts/snowbelle/configuration.nix @@ -28,6 +28,7 @@ in }; holocron = { copyparty.enable = true; + ensure_perms.enable = true; zfs.enable = true; smb.enable = true; nfs.enable = true; diff --git a/modules/holocron/perms/default.nix b/modules/holocron/perms/default.nix index f93e4eb..f5abcc2 100644 --- a/modules/holocron/perms/default.nix +++ b/modules/holocron/perms/default.nix @@ -17,40 +17,44 @@ in { }; config = lib.mkIf cfg.enable { - # service to run periodically to reset the perms on all zpools - # everything works fine without this, just for peace of mind - # and to clean up the ownership from the arr stack in /holocron/media + # service to run periodically to reset the perms on all zpools + # everything works fine without this, just for peace of mind + # and to clean up the ownership from the arr stack in /holocron/media systemd.services.${service} = { description = "ensure file permissions for archives, media and user folders"; - serviceConfig.ExecStart = '' - #!/bin/bash - - # Fix ownership for archives directory - chown -R root:archives ${archives_path} - chmod -R 2770 ${archives_path} - - # Fix ownership for media directory - chown -R root:media ${media_path} - chmod -R 2770 ${media_path} - - # Fix user directories - for user_dir in ${users_path}/*; do - if [ -d "$user_dir" ]; then - user=$(basename "$user_dir") - chown -R "$user:$user" "$user_dir" - chmod -R 700 "$user_dir" - fi - done - ''; wantedBy = ["multi-user.target"]; - type = "oneshot"; + serviceConfig = { + Type = "oneshot"; + ExecStart = '' + #!/bin/bash + + # Fix ownership for archives directory + chown -R root:archives ${archives_path} + chmod -R 2770 ${archives_path} + + # Fix ownership for media directory + chown -R root:media ${media_path} + chmod -R 2770 ${media_path} + + # Fix user directories + for user_dir in ${users_path}/*; do + if [ -d "$user_dir" ]; then + user=$(basename "$user_dir") + chown -R "$user:$user" "$user_dir" + chmod -R 700 "$user_dir" + fi + done + ''; + }; }; - # timer to run the service periodically (e.g., daily) systemd.timers.${service} = { description = "run script to ensure_perms daily"; - timerConfig.OnCalendar = "daily"; # Can be adjusted to hourly, weekly, etc. - unit = "${service}.service"; + wantedBy = ["timers.target"]; + timerConfig = { + OnCalendar = "daily"; + Persistent = true; + }; }; }; }