如何在用户登录时自动挂载 SSHFS 共享?

如何在用户登录时自动挂载 SSHFS 共享?

我的问题是如何挂载 SSHFS 共享作为用户(不是 root)根据需要或在用户登录时仅使用我的发行版核心存储库中的工具。我正在使用阿奇。如果需要的话,我不介意写一个小脚本。我还希望在用户注销后卸载相同的共享。

背景:我查过其他类似的问题,没有找到合适的答案。例子:

  • 这个答案推荐afuse,现在显然已经不存在了。 (它的网站已离线,我在 Arch 存储库中找不到任何用处。)
  • 这个还推荐afuse。

此外,SSHFS Arch Wiki 的自动挂载部分有一些问题。它被标记为已过时。它使用一种将 SSHFS 共享挂载为,然后需要使用allow_othermount 选项。但这种组合暴露了以下错误:

如果您打算使用allow_other挂载选项,请注意FUSE有一个未解决的安全错误:如果不使用default_permissions挂载选项,则只要被访问条目的inode存在于内核缓存中,文件系统对目录条目执行的第一次权限检查的结果将被重新用于后续访问 -即使权限已更改,并且即使后续访问是由不同的用户进行的。如果文件系统只能由挂载用户访问(无论如何都可以完全访问文件系统),那么这没什么问题,但当其他用户被允许访问文件系统时就会成为安全问题(因为他们可以利用这一点来执行操作)他们实际上没有权限的文件系统)。

该错误的解决方法是使用默认权限与allow_other,但default_permissions不支持ACL(并且这个组合可能根据我的经验,还会导致其他与权限相关的问题)。

更多细节:

我希望由普通用户执行安装(当用户登录或按需时)没有使用default_permissions 或allow_other。 (初步测试表明此方法可以使权限按预期工作。)更新: 不,我错了。当目录由另一个用户拥有并且使用组权限来授予访问权限时,权限仍然存在问题。在这种情况下,访问会被不正确地拒绝。我认为正确的答案可能是:在像我这样的情况下不要使用 SSHFS。

我也不想使用任何边际包,甚至 AUR 的包。

我看到了一个pam_exec.so可能是解决方案的建议,但我还没有看到任何详细的示例来说明如何为每个用户自动安装共享进行配置。另外,如果我使用这种方法,我想在用户注销时卸载相同的共享。

另一个选择可能是 AutoFS。然而,再一次拱门维基本主题使用需要 root 的示例。甚至还有“作为根用户“以粗体显示。(维基页面在这个问题上也有一个公开的争议。我更喜欢关于如何做到这一点的明确或权威的答案。)

我不希望解决方案仅限于 GUI 登录。任何自动挂载(登录时或按需)都应该在 DE、虚拟控制台或(希望如此)甚至 SSH 登录中有效。

相关内容