CentOS中Jellyfin权限设置指南
为确保Jellyfin运行安全,需创建专用系统用户及组,避免使用root账户。
sudo groupadd jellyfin
sudo useradd -r -g jellyfin -d /var/lib/jellyfin -s /sbin/nologin jellyfin
-r:创建系统用户;-g:指定所属组;-d:设置主目录;-s:禁止登录shell。Jellyfin的关键目录包括数据目录(存储媒体文件、配置)、日志目录(记录运行日志),需将所有权赋予jellyfin用户及组,并设置合理权限:
/var/lib/jellyfin):sudo chown -R jellyfin:jellyfin /var/lib/jellyfin
sudo chmod -R 755 /var/lib/jellyfin
/var/log/jellyfin):sudo mkdir -p /var/log/jellyfin
sudo chown -R jellyfin:jellyfin /var/log/jellyfin
sudo chmod -R 755 /var/log/jellyfin
/etc/jellyfin/jellyfin.conf):sudo chown jellyfin:jellyfin /etc/jellyfin/jellyfin.conf
sudo chmod 644 /etc/jellyfin/jellyfin.conf
/usr/share/jellyfin):sudo chown -R jellyfin:jellyfin /usr/share/jellyfin
权限说明:755(所有者可读/写/执行,组及其他用户可读/执行)适用于目录;644(所有者可读/写,组及其他用户可读)适用于配置文件。若系统启用SELinux(可通过getenforce命令检查),需调整上下文或布尔值以允许Jellyfin访问资源:
sudo chcon -Rv --type=httpd_sys_rw_content_t /var/lib/jellyfin
httpd_sys_rw_content_t允许Web服务(Jellyfin)读写该目录。sudo setsebool -P httpd_can_network_connect_db 1
sudo setsebool -P httpd_enable_homedirs 1
这些设置解决了数据库连接、家目录访问等常见SELinux限制问题。允许Jellyfin默认端口(8096/tcp)通过防火墙,确保外部设备可访问:
sudo firewall-cmd --permanent --zone=public --add-port=8096/tcp
sudo firewall-cmd --reload
若使用反向代理(如Nginx、Apache),还需开放HTTP(80/tcp)或HTTPS(443/tcp)端口,并配置代理规则。
设置完成后,启动Jellyfin服务并设置为开机自启,检查运行状态:
sudo systemctl daemon-reload
sudo systemctl start jellyfin
sudo systemctl enable jellyfin
sudo systemctl status jellyfin
若服务状态显示为active (running),则说明权限设置成功。
jellyfin:jellyfin,权限是否正确(如755目录、644文件)。journalctl -u jellyfin -f查看具体拒绝原因,调整对应布尔值或上下文。