为确保Jellyfin运行安全,避免使用root用户,需创建专用系统用户及组。执行以下命令:
sudo groupadd jellyfin
sudo useradd -r -g jellyfin -d /opt/jellyfin -s /sbin/nologin jellyfin
-r:创建系统用户;-d /opt/jellyfin:指定用户主目录(可替换为你的Jellyfin安装路径);-s /sbin/nologin:禁止用户登录Shell。将Jellyfin的安装目录(如/opt/jellyfin)、数据目录(/var/lib/jellyfin)、日志目录(/var/log/jellyfin)的所有权转移至jellyfin用户及组:
sudo chown -R jellyfin:jellyfin /opt/jellyfin # 安装目录(若自定义路径需替换)
sudo chown -R jellyfin:jellyfin /var/lib/jellyfin # 数据存储目录
sudo chown -R jellyfin:jellyfin /var/log/jellyfin # 日志目录
-R:递归修改目录及子目录、文件的权限。为避免权限过宽导致安全隐患,建议将目录权限设置为755(所有者可读/写/执行,组及其他用户仅可读/执行):
sudo chmod -R 755 /opt/jellyfin
sudo chmod -R 755 /var/lib/jellyfin
sudo chmod -R 755 /var/log/jellyfin
775(需谨慎使用):sudo chmod -R 775 /var/lib/jellyfin
若系统启用了SELinux(默认开启),需调整上下文以允许Jellyfin访问资源:
# 设置目录为httpd_sys_content_t类型(适用于Web服务)
sudo chcon -Rv --type=httpd_sys_content_t /opt/jellyfin
sudo chcon -Rv --type=httpd_sys_rw_content_t /var/lib/jellyfin # 数据目录需读写权限
# 或通过semanage设置更宽松的策略(需安装policycoreutils-python-utils)
sudo yum install -y policycoreutils-python-utils
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/jellyfin(/.*)?"
sudo restorecon -Rv /var/lib/jellyfin
httpd_sys_rw_content_t:允许Web服务读写该目录;restorecon:恢复默认SELinux上下文。确保防火墙允许Jellyfin默认端口(8096,HTTP)或自定义端口的流量:
sudo firewall-cmd --permanent --zone=public --add-port=8096/tcp
sudo firewall-cmd --reload
443端口:sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --reload
启动Jellyfin服务并设置为开机自启,检查运行状态:
sudo systemctl start jellyfin
sudo systemctl enable jellyfin
sudo systemctl status jellyfin # 查看服务状态(需显示“active (running)”)
sudo tail -f /var/log/jellyfin/jellyfin.log
在浏览器中输入服务器IP或域名(如http://your_server_ip:8096),确认能正常访问Jellyfin管理界面。若仍无法访问,需检查:
通过以上步骤,可解决CentOS系统下Jellyfin的常见权限问题,确保其安全、稳定运行。若需进一步优化(如用户权限细分),可在Jellyfin管理界面中配置用户组及媒体库访问权限。