我的系统通过 Oracle 的 Virtual Box 设置了 Ubuntu 14.04 安装,运行 14.04 客户虚拟机。
我还在 zpool 中设置了 3 个 2TB 驱动器。为了让虚拟机能够访问 zpool 中的数据集,我使用了 Virtual Box 的共享文件夹功能与虚拟机共享 /mnt/[datasets]。在虚拟机内部,它们可作为 /media/sf_[datasets] 使用。
我使用虚拟机进行大部分服务器活动,包括运行 deluge 和 sickbeard(技术上称为 sickrage)。我的 Sickrage 设置会搜索种子并将其存放到 /media/sf_dataset1/torrentfolder 中的一个文件夹中,该文件夹由 deluge 监控,并实际下载到 /media/sf_dataset1/torrentsdownloaded。Sickrage 监控 torrentsdownloaded 并将进程发布到 /media/sf_dataset2/Television。
在虚拟机之外,在“基本” Ubuntu 安装中,我有一个 plex 服务器正在运行,它监视 /mnt/dataset2/[媒体文件夹]。
我刚刚切换到此设置,并注意到 Plex 找不到新媒体,尽管它位于正确的位置。这促使我检查权限。下载后,文件具有以下权限:
Owner - Read/Write
Group - Read/Write
Others - Read Only
并且,因为这是在虚拟机内部,所以所有者是 root,组是 vboxsf。
在 Sickrage 后期处理之后,权限更改为
Owner - Read/Write
Group - Read/Write
Others - None
我认为这是因为 Sickrage 根据文件所在目录的权限授予文件权限。由于这些是共享文件夹,它们的权限都是 770,我无法将它们更改为 777(我试过了)。
在虚拟机之外,下载的文件和后处理文件的权限相同。所有者和组为 [用户]:[用户组]。因此,Plex 没有任何权限,也看不到这些文件。
解决这个问题的一个方法是将传输的文件设置为 chmod 777。但我不想手动执行此操作(整个系统应该是自动化的)。但我对自动化解决方案的想法是使用 crontab 结合脚本来
chmod 777 -R /mnt/dataset2
每分钟。我担心这可能会因过多的写入和读取而损坏我的驱动器。
另一个解决方案是,我可以将所有文件的所有者更改为 [user]:plex。如果我这样做,我认为将来的后处理文件将是 770,所有者为 user,组为 plex。因为运行 plex 服务器的用户 plex 是 plex 组的成员,所以这将解决权限问题。这里唯一的问题是,我认为我必须将 deluge 更改为以用户 plex 的身份运行。否则,我的文件将以 [user]:[usergroup] 所有权下载。
不过,我还是想向社区反馈这个问题,看看他们怎么说。我每分钟执行一次 chmod 777 是否会对我的系统或驱动器造成过度压力?
这样让 plex 成为我所有文件的所有者有什么坏处吗?我是否必须重新配置 deluge?
也许第三个选项是让用户 plex 成为 [用户组] 的成员。但这将使 plex 能够访问许多文件,这听起来并不理想。
编辑:
我已经能够消除一些猜测。这发生在虚拟机中这一事实似乎并不重要。我让 CouchPotato 以类似的方式重命名和移动电影文件。经过 CouchPotato 处理后,文件显示为具有可行权限。
这意味着 SickBeard 一定有什么奇怪的地方。我已在 Sickbeard 专用论坛上发帖。
答案1
答案2
嗨,我认为答案在于了解哪些系统正在从哪里写入您的数据以及它们如何访问这些数据。即通过 smb 或 afp 连接会产生不同的情况,而通过 NFS 连接又不同。如果您使用的是 afp,我建议切换到 smb,如果您通过 NFS 连接,则需要正确匹配 uid 和 gid。
此外,如果我没有看错的话,您还拥有一个通过一些本机 VM 共享连接的虚拟机。除非它有默认用户、组和模式的选项,否则我会避免使用它,而只是使用 OS 网络进行设置,例如使用上面的 NFS。这样,您就可以控制您的媒体系统认为谁在写入您的数据以及它需要哪些默认权限,从而保持一致性。我刚刚在 Tech-KnowHow 上写了一个指南,涵盖了昨天的大部分内容,这可能会有所帮助。如果它不起作用,请告诉我,因为它在我的脑海里仍然比较新鲜,我可能会添加一些进一步的内容。祝你好运。
直接链接:https://www.tech-knowhow.com/2016/03/how-to-plex-permissions-linux/
**2016 年 4 月 27 日更新** 我回来看看你的情况,看起来你还没有解决这个问题?我看到了你关于 Sickbeard 的更新,我仍然相信这是与操作系统级别的权限有关,而不是特定于应用程序的权限。你在 Sickbeard 上有什么进展吗?Linux 权限真的很麻烦。
当然还有 ACL,这在某种程度上更容易理解,但是一旦你理解了它们,它也可以与标准 Linux 权限一起使用。
马歇尔