Ubuntu Jellyfin权限管理指南
首先通过Ubuntu官方仓库安装Jellyfin(推荐方式):
sudo apt update && sudo apt install jellyfin
或使用Snap包安装(需添加--classic参数以获得完整权限):
sudo snap install jellyfin --classic
安装完成后,Jellyfin服务会自动启动。
为隔离Jellyfin进程权限,避免使用root账户,创建专用系统用户及组:
sudo adduser --system --group --disabled-login --no-create-home jellyfin
该命令会生成一个无登录权限、无主目录的系统用户jellyfin,仅用于运行Jellyfin服务。
编辑Jellyfin的systemd服务文件(路径:/etc/systemd/system/jellyfin.service),修改[Service]部分,指定用户和组:
[Service]
User=jellyfin
Group=jellyfin
ExecStart=/usr/bin/jellyfin
Restart=on-failure
保存后重新加载systemd配置并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart jellyfin
通过sudo systemctl status jellyfin确认服务以jellyfin用户运行。
Jellyfin需要访问以下核心目录,需将所有权赋予jellyfin用户及组,并设置合理权限:
sudo chown -R jellyfin:jellyfin /var/lib/jellyfin
sudo chmod -R 755 /var/lib/jellyfin
sudo chown -R jellyfin:jellyfin /var/log/jellyfin
sudo chmod -R 755 /var/log/jellyfin
sudo chown -R jellyfin:jellyfin /etc/jellyfin
sudo chmod -R 755 /etc/jellyfin
/path/to/media为实际路径,执行:sudo chown -R jellyfin:jellyfin /path/to/media
sudo chmod -R 755 /path/to/media
注:若媒体文件需被其他用户共享,可保留755权限;若仅需Jellyfin访问,可设置为750。
若需为特定用户分配更灵活的权限(如允许某用户写入媒体目录),可使用访问控制列表(ACL):
sudo tune2fs -o acl /dev/sdXn # 替换为实际分区(如/dev/sda1)
sudo mount -o remount /var/lib/jellyfin # 重新挂载目录以应用ACL
yourusername对媒体目录有读写执行权限:sudo setfacl -m u:yourusername:rwx /path/to/media
jellyfin组对媒体目录有读写执行权限:sudo setfacl -m g:jellyfin:rwx /path/to/media
sudo getfacl /path/to/media。若通过Nginx或Apache反向代理访问Jellyfin,需确保代理配置允许Jellyfin服务访问内部目录:
/etc/nginx/sites-available/jellyfin):server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://localhost:8096; # Jellyfin默认端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用配置并重启Nginx:sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginx
/etc/apache2/sites-available/jellyfin.conf):<VirtualHost *:80>
ServerName your_domain_or_ip
ProxyPass / http://localhost:8096/
ProxyPassReverse / http://localhost:8096/
</VirtualHost>
启用配置并重启Apache:sudo a2ensite jellyfin.conf
sudo systemctl restart apache2
注:若需限制代理目录访问,可在Nginx中添加
auth_basic认证(参考搜索结果中Nginx配置示例)。
sudo systemctl status jellyfin(应显示“active (running)”)。sudo tail -f /var/log/jellyfin/jellyfin.log。http://your_domain_or_ip:8096),确认能正常登录和使用。