為保障安全,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 權限管理的核心環節,確保服務安全運行的同時,靈活控制用戶訪問權限。