允许 systemd 系统单元访问/挂载该服务运行所需的磁盘

允许 systemd 系统单元访问/挂载该服务运行所需的磁盘

前言:我对 Ubuntu 和 Linux 还很陌生,所以请多包涵。

我创建了一个 systemd 系统单元来将程序作为服务运行。为了增加安全性,该服务在其自己的组和用户下运行,没有登录功能。为了使服务运行,它需要访问多个磁盘。为了使服务能够访问磁盘,我使用bindfs重新安装由我登录的用户帐户安装的磁盘,并允许服务的用户访问已安装的磁盘。

服务成功运行;但是,我可以看到这种方法存在问题,因为如果我重新启动,并且服务在我登录之前启动,它将会失败,我推测是因为我还没有登录,我的用户帐户还没有挂载磁盘,bindfs没有什么可以重新挂载,并且服务将无法访问磁盘。

那么,运行服务并让用户访问这些磁盘的最佳方法是什么? 有没有办法让设备以服务和我的用户帐户可以访问的方式安装磁盘? 在我的用户帐户下运行守护程序是唯一的解决方案吗? 还是我从一个完全错误的角度来处理这个问题?

任何帮助将不胜感激。

答案1

因此,经过进一步研究,我能够通过创建一个新组并向其中添加我的用户帐户和服务帐户来解决我的问题。然后,在 中fstab,我使用我的用户帐户和新组作为所有者挂载磁盘,并将其设置为在启动时自动挂载。现在,在启动时,磁盘已挂载并且服务可以访问它们。

有关如何完成上述操作的详细说明,请参阅此处回答

相关内容