如何与服务用户共享家庭云目录?

如何与服务用户共享家庭云目录?

我有一个 pcloud 云帐户,我所有的音乐都存储在那里,它将虚拟驱动器安装到 /home/myusername/pcloud,我专门寻找 /home/myusername/pcloud/music 文件夹。

由于该文件夹是由 pcloud 通过其应用程序设置的,因此没有明确的方法来移动该文件夹。

现在进入 jellyfin,我希望它为家里的各种媒体播放器提供文件。这很好,但它会创建一个不同的用户。它会在我的 /home/ 文件夹中创建一个它无法访问的文件夹,即 /home/myusername/Jellyfin Server Media,并且这是我的主文件夹中唯一可以访问的文件夹

因此,创建 /shared 文件夹不是一个选择。

我尝试执行 chmod 来更改对 pcloud/music 中的文件夹和文件的读取和执行权限,但无济于事。

如何授予 jellyfin 访问云音乐文件夹的权限?或者,如何让 jellyfin 使用我的用户运行?

答案1

一些允许公开/远程访问或提供本地文件的服务是预先配置的,或者允许它们访问或实际上可以看到文件系统层次结构的有限范围...这是作为第二层数据访问安全措施完成的,除了这些服务中内置的其他第一层数据访问权限之外,以防它们以某种方式受到损害...这些有限范围服务的一个例子是 Apache Web 服务器,如中所述网络服务器如何访问外部硬盘?

因此,改变权限并直接尝试访问或符号链接到这些文件根本行不通,因为这些文件不会被看到,这些进程也不会跟踪这些符号链接。

所以你可以任何一个(不要这样做)扩大这些服务的范围,这违背了保护数据的初衷,也可能会破坏这些服务并导致它们停止工作,这取决于它们内置的其他安全措施/检查或操作系统的安全策略对它们施加的其他安全措施/检查...或者(推荐),您可以通过复制文件、挂载文件系统或绑定挂载目录和 VFS 挂载(已挂载的文件系统)等方式将这些位置/文件纳入这些服务的范围内,这些挂载目录位于这些服务已经可以访问的根目录下。

在您的情况下,由于您希望该服务访问 VFS 挂载,最简单的解决方案是将mount --bindPcloud 的挂载点/目录放在为 Jellyfin 配置的根目录中,例如:

sudo mount --bind /home/myusername/pcloud /home/myusername/Jellyfin\ Server\ Media

... 现在您应该可以看到新挂载点下的文件,但是您可能仍需要根据需要在新挂载点和/或其下的文件上设置权限、访问掩码或 ACL。

注意上述讨论并非针对 Jellyfin,也不是其唯一可能的解决方案,而是适用于任何类似情况的通用解决方案...此外,我鼓励您查看 Jellyfin 管理界面中的内置选项并阅读其文档以了解他们是否推荐任何其他特定于该服务的解决方案,因为他们可能已经有某种可以满足您的要求的实现/附加组件/插件。

相关内容