Set UMask 0002 on all media services for group-writable files
Sonarr, Radarr, qBittorrent, Jellyfin, and Bazarr all need to create files that are writable by the media group. Without this, Jellyfin can't write thumbnails/artwork to media directories and services can't collaborate on shared files. Also fixes radarr movies directory to use setgid (2775) consistently. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
3c6e86aca9
commit
984f45e1d4
5 changed files with 17 additions and 4 deletions
|
|
@ -12,6 +12,9 @@
|
||||||
group = "media";
|
group = "media";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Ensure subtitles written by bazarr are group-writable
|
||||||
|
systemd.services.bazarr.serviceConfig.UMask = "0002";
|
||||||
|
|
||||||
users.users.bazarr = {
|
users.users.bazarr = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
group = "media";
|
group = "media";
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Ensure Jellyfin can write thumbnails/artwork to media directories
|
||||||
|
systemd.services.jellyfin.serviceConfig.UMask = "0002";
|
||||||
|
|
||||||
users.users.jellyfin.extraGroups = [ "media" "video" "render" ];
|
users.users.jellyfin.extraGroups = [ "media" "video" "render" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@
|
||||||
Group = "media";
|
Group = "media";
|
||||||
ExecStart = "${pkgs.qbittorrent-nox}/bin/qbittorrent-nox --confirm-legal-notice";
|
ExecStart = "${pkgs.qbittorrent-nox}/bin/qbittorrent-nox --confirm-legal-notice";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
|
UMask = "0002";
|
||||||
|
|
||||||
# Security hardening - FIXED
|
# Security hardening - FIXED
|
||||||
NoNewPrivileges = true;
|
NoNewPrivileges = true;
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,9 @@
|
||||||
group = "media";
|
group = "media";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Ensure files created by radarr are group-writable
|
||||||
|
systemd.services.radarr.serviceConfig.UMask = "0002";
|
||||||
|
|
||||||
# Media group is already created in qbittorrent-nox.nix
|
# Media group is already created in qbittorrent-nox.nix
|
||||||
# Just make sure radarr is in it
|
# Just make sure radarr is in it
|
||||||
users.users.radarr = {
|
users.users.radarr = {
|
||||||
|
|
@ -23,8 +26,8 @@
|
||||||
# Set up directory structure with proper permissions
|
# Set up directory structure with proper permissions
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
# Media folders - radarr writes here
|
# Media folders - radarr writes here
|
||||||
"d /mnt/storage/torrents/movies 0775 radarr media -"
|
"d /mnt/storage/torrents/movies 2775 radarr media -"
|
||||||
"Z /mnt/storage/torrents/movies 0775 radarr media -"
|
"Z /mnt/storage/torrents/movies 2775 radarr media -"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,9 @@
|
||||||
group = "media";
|
group = "media";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Ensure files created by sonarr are group-writable
|
||||||
|
systemd.services.sonarr.serviceConfig.UMask = "0002";
|
||||||
|
|
||||||
# Media group is already created in qbittorrent-nox.nix
|
# Media group is already created in qbittorrent-nox.nix
|
||||||
# Just make sure sonarr is in it
|
# Just make sure sonarr is in it
|
||||||
users.users.sonarr = {
|
users.users.sonarr = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue