释放小七猫的分享欲

Emby 容器无法扫描 NFS 视频库?权限不匹配问题的完整解决

tags: NAS
@ 10/11/2025

Emby 容器无法扫描 NFS 视频库?权限不匹配问题的完整解决

最近在 LXC 容器中部署 Emby 媒体服务器时,遇到了一个棘手的问题:明明已经通过 NFS 挂载了 NAS 上的视频目录,但 Emby 始终无法扫描到任何视频文件。一番排查后发现,核心症结在于容器内用户权限与 NFS 挂载目录的权限不匹配,下面分享完整的解决过程。

前置操作,发现挂载的 NFS 文件夹所有者为 1000:1000,而 LXC 容器内服务都是 root 部署的,没有 1000 的组和用户。

在这一步我创建了一个 GID 为 1000 的 emby 组,然后把 emby 用户加入了这个组,视频文件夹权限设置为 775,但还是扫不出来。

再来看问题现象,进入 Emby 容器后,通过 groups emby 命令查看,发现 emby 用户已加入 emby、video、render 等必要组:

root@Emby:/# groups emby
emby : emby video render

而 ls -al 查看挂载的 videos 目录时,显示权限为

drwxrwsr-x 6 1000 emby 4096

这意味着目录所有者是 UID 为 1000 的用户,所属组为 emby。但显然容器内根本没有 UID 为 1000 的用户,而 Emby 服务是通过 emby 用户运行的,这就导致 emby 用户无法获得 videos 目录的所有者权限,即便属于 emby 组,也因 NFS 权限映射的限制无法正常读取文件。

找到问题根源后,解决思路就很明确了:让容器内的 emby 用户与 NFS 目录的所有者 UID 保持一致,从而直接获得目录的访问权限。具体操作步骤如下:

  1. 停止 Emby 服务,避免在用户调整过程中出现进程占用问题,执行命令 systemctl stop emby-server。由于之前的 emby 用户 UID 与目标 UID 不匹配,需要先将其删除,执行 userdel emby,删除用户时其对应的 emby 组也会被自动移除,这是后续需要重建组的原因。

  2. 重建 emby 组,为了避免权限混乱,我们可以指定 1000 为 GID,执行

groupadd -g 1000 emby

然后重新创建 emby 用户,关键是指定 UID 为 1000(与 NFS 目录所有者 UID 一致),同时将主组设为刚创建的 emby 组,并保留原有的附加组权限,命令为

useradd -u 1000 -g emby -G video,render emby

否则还需要修复 Emby 数据目录的权限,否则新的 emby 用户可能无法访问原有的配置和数据。通常 Emby 的数据目录在 /var/lib/emby,执行 chown -R emby:emby /var/lib/emby 即可递归修改目录所有者为新的 emby 用户和组。

用户重建后,如果原来的视频目录所有者是 1000:1000(对应 NAS 上第一个普通用户和它的组),那么已经可以正常访问了。

最后重启 Emby 服务,让所有配置生效,执行 systemctl restart emby-server。

重启完成后,我们可以通过 id emby 验证用户配置,此时应显示

root@Emby:/# id emby
uid=1000(emby) gid=1000(emby) groups=1000(emby),44(video),104(render)

确认 UID 和组权限都已正确配置;再执行 ls -ld /videos,会发现目录所有者已从数字 1000 变为 emby,说明权限匹配成功。

此时再次进入 Emby 后台扫描视频库,就能正常识别 NAS 上的所有视频文件了。整个过程的核心在于理解“Linux 权限基于 UID/GID 匹配”的原则,NFS 挂载目录的所有者 UID 在容器内必须有对应的用户,才能让应用获得合法的访问权限,这也是容器化部署中常见的权限配置要点。