温馨提示×

如何设置Ubuntu Jellyfin用户权限

小樊
38
2025-12-18 22:13:32
栏目: 智能运维

Ubuntu 下 Jellyfin 用户权限设置

一 系统层权限设置

  • 使用专用系统用户运行 Jellyfin,避免以 root 运行:
    • 创建系统用户:sudo adduser --system --group --disabled-login --no-create-home jellyfin
    • 将媒体目录的所有权赋予 jellyfin(将 /mnt/media 替换为你的实际媒体路径):
      • 仅授予读取:sudo chown -R jellyfin:jellyfin /mnt/media && sudo chmod -R 755 /mnt/media
      • 如需写入(如启用“允许上传/转码缓存到媒体目录”):sudo chown -R jellyfin:jellyfin /mnt/media && sudo chmod -R 775 /mnt/media
    • 修正数据与日志目录权限:sudo chown -R jellyfin:jellyfin /var/lib/jellyfin /var/log/jellyfin
    • 说明:权限数字含义为 r=4、w=2、x=1;如 755 表示“所有者 rwx,组 rx,其他 rx”,775 表示“所有者 rwx,组 rwx,其他 rx”。以上做法遵循最小权限原则,并确保 Jellyfin 进程对媒体与数据目录具备所需访问权。

二 Jellyfin 内建多用户与访问控制

  • 创建用户与分组:在 Web 管理端 控制台 > 用户 中添加家庭成员账户,可按需创建多个用户或用户组。
  • 库与权限分配:在 控制台 > 媒体库 中为每个库设置可见的用户/用户组;在用户详情里可细化为:
    • 媒体库可见性(按库控制)
    • 播放、下载、上传、删除等操作权限
    • 播放限速、字幕下载、成人内容限制等
  • 网络与访问控制:在 控制台 > 网络 中可限制访问来源(如仅内网)、启用 HTTPS、设置反向代理相关头部,以减少暴露面并提升安全。以上配置即可满足家庭/小团队的多用户管理与权限隔离需求。

三 网络安全与反向代理

  • 防火墙:仅开放必要端口与服务
    • UFW 示例:sudo ufw allow OpenSSHsudo ufw allow 8096/tcp(或 sudo ufw allow “WWW Full” 若经反向代理对外提供 HTTPS),随后 sudo ufw enable && sudo ufw status
  • 反向代理与 HTTPS:建议通过 Nginx/Apache 终止 TLS,对外仅暴露 443,内部转发至 8096
    • Nginx 最小可用示例:
      • 配置片段:
        • listen 443 ssl http2;
        • ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
        • ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
        • location / { proxy_pass http://127.0.0.1:8096; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
      • 启用与校验:sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl reload nginx
    • 证书获取:使用 Certbot 获取 Let’s Encrypt 证书并自动续期(示例:sudo certbot --nginx -d your_domain
  • 云环境:如部署在云服务器,还需在安全组放行 443(以及你指定的管理端口)。

四 常见问题排查与加固

  • 权限问题快速定位:
    • 查看服务状态:sudo systemctl status jellyfin
    • 实时查看日志:sudo tail -f /var/log/jellyfin/jellyfin.log
    • 若媒体无法扫描或播放,优先检查媒体目录是否属于 jellyfin:jellyfin 且权限不低于 755/775(按是否需要写入决定)
  • 运行方式与更新:
    • 运行方式:如希望进一步隔离与易维护性,可考虑 Docker 部署;否则使用系统服务方式并确保 sudo systemctl enable --now jellyfin 已启用
    • 安全维护:保持 Jellyfin 与系统及时更新,定期审查防火墙与反向代理配置,必要时启用 MFA 等增强措施。

0