Skip to content

Scope jellyfin's private-share ACL to a dedicated clips folder - #26

Merged
phonkd merged 1 commit into
mainfrom
worktree-splendid-munching-deer
Jul 13, 2026
Merged

Scope jellyfin's private-share ACL to a dedicated clips folder#26
phonkd merged 1 commit into
mainfrom
worktree-splendid-munching-deer

Conversation

@phonkd

@phonkd phonkd commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Jellyfin previously had recursive read+execute over the entire private share, but Jellyfin is the only public, unauthenticated-at-the-edge service on this host. Narrow its filesystem access to a single clips/ subfolder: traverse-only on the private root, full rX only on clips.

Jellyfin previously had recursive read+execute over the entire private
share, but Jellyfin is the only public, unauthenticated-at-the-edge
service on this host. Narrow its filesystem access to a single clips/
subfolder: traverse-only on the private root, full rX only on clips.
Copilot AI review requested due to automatic review settings July 13, 2026 15:09
@phonkd
phonkd merged commit d21b385 into main Jul 13, 2026
1 check passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR tightens filesystem permissions on host 203-media by narrowing Jellyfin’s ACL access within the private Samba share to a dedicated clips/ subfolder, reducing exposure for a publicly reachable service.

Changes:

  • Create /mnt/Shares/.../clips via systemd.tmpfiles to ensure the target directory exists with consistent ownership/mode.
  • Replace the previous recursive Jellyfin ACL on the whole private share with separate ACLs intended to provide traverse-only on the private root and read+execute on clips/.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

# already knows but can't list the root's contents -- and full
# read+execute only on clips itself. A+ recurses over existing content;
# the `d:` default entry on clips handles anything written there later.
"A+ /mnt/Shares/this-is-my-own-private-property-and-you-are-not-welcome-here - - - - u:jellyfin:x"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants