Skip to content

Commit aedfb53

Browse files
authored
Periodically update permissions for Samba shares (#199)
1 parent 2ba8254 commit aedfb53

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

‎hosts/glyph/services/samba.nix‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,33 @@
5151
}
5252
// shares;
5353
};
54+
55+
systemd.services.ensureSambaPermissions = {
56+
description = "Ensures correct permissions within Samba shares";
57+
serviceConfig = {
58+
Type = "oneshot";
59+
ExecStart = let
60+
defaultUsrGrp = "mu:users";
61+
plexUsrGrp = with config.services.plex; "${user}:${group}";
62+
transmissionUsrGrp = with config.services.transmission; "${user}:${group}";
63+
in [
64+
"${pkgs.coreutils}/bin/chown -R ${defaultUsrGrp} archive"
65+
"${pkgs.coreutils}/bin/chown -R ${defaultUsrGrp} backup"
66+
# N.B.: /mnt/media/Music is used by Roon, not Plex
67+
"${pkgs.coreutils}/bin/chown -R ${plexUsrGrp} media/Movies media/TV media/Video"
68+
"${pkgs.coreutils}/bin/chown -R ${defaultUsrGrp} media/Music"
69+
"${pkgs.coreutils}/bin/chown -R ${transmissionUsrGrp} torrents"
70+
"${pkgs.coreutils}/bin/chown -R ${defaultUsrGrp} unsorted"
71+
];
72+
WorkingDirectory = "/mnt";
73+
};
74+
};
75+
76+
systemd.timers.ensureSambaPermissions = {
77+
wantedBy = ["timers.target"];
78+
timerConfig = {
79+
OnCalendar = "hourly";
80+
Persistent = true;
81+
};
82+
};
5483
}

0 commit comments

Comments
 (0)