为保障安全,Jellyfin 应使用专用系统用户运行,避免使用 root 权限。
sudo adduser jellyfin --system --group --no-create-home --shell /sbin/nologin
此命令创建了一个名为 jellyfin 的系统用户及同名组,无登录权限,仅用于运行 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 权限允许所有者读写,其他用户仅读。
若系统启用了 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 表示递归处理子目录。
Jellyfin 默认使用 8096 端口(TCP),需通过防火墙放行:
sudo firewall-cmd --permanent --zone=public --add-port=8096/tcp
sudo firewall-cmd --reload
说明:若使用反向代理(如 Nginx),需额外放行代理端口(如 80/443)。
Jellyfin 的用户权限主要通过 Web 界面配置,步骤如下:
http://<服务器IP>:8096,使用管理员账号登录(默认 admin/admin,首次登录需修改)。jellyfin 用户访问(参考步骤 2)。若需通过命令行管理用户,可使用以下命令:
# 添加用户(需指定密码)
sudo jellyfin --add-user <用户名> <密码>
# 删除用户
sudo jellyfin --remove-user <用户名>
# 列出所有用户
sudo jellyfin --list-users
说明:命令行操作需谨慎,建议优先使用 Web 界面。
chown -R jellyfin:jellyfin /path/to/media 修复目录权限。journalctl -u jellyfin -f 查看日志,根据错误信息调整 SELinux 策略(如 setenforce 0 临时关闭 SELinux 测试)。以上步骤覆盖了 CentOS 上 Jellyfin 权限管理的核心环节,确保服务安全运行的同时,灵活控制用户访问权限。