温馨提示×

centos上jellyfin权限如何设置

小樊
46
2025-11-29 19:01:31
栏目: 智能运维

CentOS 上 Jellyfin 权限设置指南

一 运行身份与基础检查

  • 确认服务运行用户:Jellyfin 通常以系统用户 jellyfin 运行。可执行:ps -eo user,comm | grep jellyfin,应看到进程属主为 jellyfin
  • 确认目录归属:媒体目录与缓存/配置目录应可被 jellyfin 读取(读/执行),缓存目录需可写。
  • 日志定位:排查权限问题优先查看 /var/log/jellyfin/ 下的日志文件。
  • 防火墙放行:若本机访问正常而外部无法访问,放行端口 8096/tcpfirewall-cmd --add-port=8096/tcp --permanent && firewall-cmd --reload

二 宿主机部署的权限设置

  • 媒体目录权限(推荐最小权限)
    • 将媒体目录属主设为 jellyfin,并赋予同组读写执行:
      sudo chown -R jellyfin:jellyfin /mnt/jellyfin
      sudo chmod -R 775 /mnt/jellyfin
      
    • 若目录包含其他用户文件,不想整体改属主,可为 jellyfin 增加 ACL:
      sudo setfacl -R -m u:jellyfin:rwx /mnt/jellyfin
      sudo setfacl -R -d -m u:jellyfin:rwx /mnt/jellyfin  # 新建文件继承
      
  • 缓存与配置目录
    • 确保 /var/lib/jellyfin/var/cache/jellyfinjellyfin 可写:
      sudo chown -R jellyfin:jellyfin /var/lib/jellyfin /var/cache/jellyfin
      sudo chmod -R 755 /var/lib/jellyfin /var/cache/jellyfin
      
  • 系统服务与 SELinux
    • 重启服务生效:sudo systemctl restart jellyfin
    • 若启用了 SELinux,为挂载点设置合适上下文(示例):
      sudo semanage fcontext -a -t httpd_sys_content_t "/mnt/jellyfin(/.*)?"
      sudo restorecon -R /mnt/jellyfin
      
      如未安装 semanage:sudo yum install -y policycoreutils-python-utils
  • 安全提示
    • 避免使用 777 权限;优先采用“属主 + ACL”的最小权限模型。
    • 若曾用 root 拷贝媒体文件,后续请统一调整为 jellyfin 属主,避免访问被拒。

三 Docker 部署的权限设置

  • 目录挂载与属主
    • 启动前确保宿主机目录对容器内 jellyfin 用户可读写(容器内常见 UID/GID 为 1000:100,以实际容器为准):
      sudo chown -R 1000:100 /srv/jellyfin/{config,cache} /mnt/jellyfin
      sudo chmod -R 775 /srv/jellyfin /mnt/jellyfin
      
  • 运行示例(使用命名卷或绑定挂载均可,关键是目录权限正确):
    docker run -d \
      --name jellyfin \
      -p 8096:8096 \
      -v /srv/jellyfin/config:/config \
      -v /srv/jellyfin/cache:/cache \
      -v /mnt/jellyfin:/media \
      --restart unless-stopped \
      jellyfin/jellyfin:latest
    
  • 若遇到权限错误,优先检查宿主机目录的 UID/GID 与权限,再查看容器日志:docker logs jellyfin

四 网络共享与多用户访问控制

  • 访问共享文件夹(Samba/NFS)
    • 将远端共享挂载到本地目录(如 /mnt/nas),再把 /mnt/nas 加入 Jellyfin 媒体库。
    • 挂载后对挂载点设置与宿主机相同的属主/权限或 ACL,确保 jellyfin 可读写:
      sudo chown -R jellyfin:jellyfin /mnt/nas
      sudo chmod -R 775 /mnt/nas
      
  • 多用户与访问控制
    • 在 Jellyfin 控制台:Settings -> Users and Groups 添加用户、设置密码与权限;可按库/文件夹进行可见性与播放权限的细分。
    • 对外网访问建议:启用反向代理(如 Nginx + HTTPS),并使用强密码与定期更新策略,降低暴露面与风险。

五 常见故障排查清单

  • 目录或文件无法读取/写入:检查属主是否为 jellyfin,权限是否至少为 r-x(目录)与 r–(文件),必要时补充 ACL
  • 新拷入文件不可见:拷贝文件时使用了 root,导致 jellyfin 无权限;统一调整属主或设置默认 ACL。
  • SELinux 拦截:使用 ausearch -m avc -ts recentjournalctl -xe 查看被拒记录,并按需设置文件上下文或布尔值。
  • 容器权限问题:核对宿主机挂载目录的 UID/GID 与权限,查看 docker logs 输出定位问题。
  • 日志优先:查看 /var/log/jellyfin/ 中的服务日志与访问日志,通常能直接指明是“权限拒绝”还是“路径不存在”。

0