- 首页 >
- 问答 >
-
智能运维 >
- 如何设置Ubuntu Jellyfin用户权限
如何设置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 OpenSSH、sudo 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 等增强措施。