web-dev-qa-db-ja.com

systemdシステムユニットがそのサービスの実行に必要なディスクにアクセス/マウントできるようにする

はじめに:私はUbuntuとLinux全般は初めてなので、我慢してください。

プログラムをサービスとして実行するsystemdシステムユニットを作成しました。セキュリティを強化するため、サービスはログイン機能なしで独自のグループとユーザーで実行されます。サービスを実行するには、複数のディスクにアクセスする必要があります。サービスにディスクへのアクセスを許可するために、bindfsを使用して、ログインしたユーザーアカウントによってマウントされたディスクを、サービスのユーザーもマウントされたディスクにアクセスできる権限で再マウントします。

サービスは正常に実行されます。ただし、このアプローチには問題があります。再起動し、ログインする前にサービスが開始すると失敗するからです。まだログインしていないため、ユーザーアカウントがディスクをマウントしていないため、bindfsには再マウントするものがなく、サービスはディスクにアクセスできません。

それでは、サービスを実行し、ユーザーがこれらのディスクにアクセスできるようにする最良の方法は何でしょうか?ユニットがディスクをマウントして、サービスとユーザーアカウントにアクセスできるようにする方法はありますか?ユーザーアカウントでデーモンを実行する唯一のソリューションはありますか?または、私はこれにまったく間違った角度から近づいていますか?

どんな助けも大歓迎です。

2
Marc A

そのため、もう少し調査して、新しいグループを作成し、ユーザーアカウントとサービスアカウントを追加することで問題を解決することができました。次に、fstabで、ユーザーアカウントと新しいグループを所有者として使用してディスクをマウントし、起動時に自動マウントするように設定しました。これで、ブート時にディスクがマウントされ、サービスがそれらにアクセスできるようになります。

上記を実現する方法の詳細な手順は、この answer にあります。

1
Marc A