温馨提示×

centos上jellyfin如何进行权限管理

小樊
78
2025-09-17 19:19:11
栏目: 智能运维

CentOS 上 Jellyfin 权限管理的完整流程

1. 准备工作:创建专用系统用户

为保障安全,Jellyfin 应使用专用系统用户运行,避免使用 root 权限。

sudo adduser jellyfin --system --group --no-create-home --shell /sbin/nologin

此命令创建了一个名为 jellyfin 的系统用户及同名组,无登录权限,仅用于运行 Jellyfin 服务。

2. 设置 Jellyfin 相关目录权限

Jellyfin 的核心目录包括数据目录(存储媒体库、用户配置)、日志目录(记录运行日志)、配置文件目录(服务配置)。需将这些目录的所有权赋予 jellyfin 用户及组,并设置合理权限。

# 数据目录(默认路径,若自定义需替换)
sudo chown -R jellyfin:jellyfin /var/lib/jellyfin
sudo chmod -R 755 /var/lib/jellyfin

# 日志目录(默认路径)
sudo mkdir -p /var/log/jellyfin
sudo chown -R jellyfin:jellyfin /var/log/jellyfin
sudo chmod -R 755 /var/log/jellyfin

# 配置文件(默认路径)
sudo chown jellyfin:jellyfin /etc/jellyfin/jellyfin.conf
sudo chmod 644 /etc/jellyfin/jellyfin.conf

说明755 权限允许所有者(jellyfin)读写执行,其他用户仅读执行;644 权限允许所有者读写,其他用户仅读。

3. 处理 SELinux 限制(若启用)

若系统启用了 SELinux(默认开启),需调整策略以允许 Jellyfin 访问资源:

# 允许 Jellyfin 访问网络数据库(如媒体元数据库)
sudo setsebool -P httpd_can_network_connect_db 1

# 允许 Jellyfin 访问用户家目录(若媒体库位于家目录)
sudo setsebool -P httpd_enable_homedirs 1

# 或设置更严格的 SELinux 上下文(推荐)
sudo chcon -Rv --type=httpd_sys_content_t /var/lib/jellyfin

说明httpd_sys_content_t 上下文允许 web 服务访问目录内容,-R 表示递归处理子目录。

4. 配置防火墙放行端口

Jellyfin 默认使用 8096 端口(TCP),需通过防火墙放行:

sudo firewall-cmd --permanent --zone=public --add-port=8096/tcp
sudo firewall-cmd --reload

说明:若使用反向代理(如 Nginx),需额外放行代理端口(如 80/443)。

5. 通过 Web 界面管理用户权限

Jellyfin 的用户权限主要通过 Web 界面配置,步骤如下:

  • 访问界面:浏览器输入 http://<服务器IP>:8096,使用管理员账号登录(默认 admin/admin,首次登录需修改)。
  • 添加用户:点击左侧菜单栏「Users」→ 右上角「Add User」,填写用户名、密码、邮箱等信息,点击「Save」。
  • 分配角色
    • Admin:拥有所有权限(管理用户、设置、媒体库等);
    • Standard:标准用户(可观看、下载媒体,无法修改设置);
    • Guest:访客用户(仅能观看公开媒体)。
  • 配置共享文件夹权限:在「Settings」→「Media Libraries」中添加媒体库目录,确保目录权限允许 jellyfin 用户访问(参考步骤 2)。

6. 命令行辅助管理用户(可选)

若需通过命令行管理用户,可使用以下命令:

# 添加用户(需指定密码)
sudo jellyfin --add-user <用户名> <密码>

# 删除用户
sudo jellyfin --remove-user <用户名>

# 列出所有用户
sudo jellyfin --list-users

说明:命令行操作需谨慎,建议优先使用 Web 界面。

常见问题排查

  • 权限不足:若 Jellyfin 无法访问媒体库,可通过 chown -R jellyfin:jellyfin /path/to/media 修复目录权限。
  • SELinux 报错:通过 journalctl -u jellyfin -f 查看日志,根据错误信息调整 SELinux 策略(如 setenforce 0 临时关闭 SELinux 测试)。

以上步骤覆盖了 CentOS 上 Jellyfin 权限管理的核心环节,确保服务安全运行的同时,灵活控制用户访问权限。

0