web-dev-qa-db-fra.com

Autoriser une unité centrale systemd à accéder / monter un disque nécessaire à l'exécution de ce service

Préface: je suis nouveau sur Ubuntu et Linux en général, alors supportez-moi.

J'ai créé une unité système systemd pour exécuter un programme en tant que service. Pour plus de sécurité, le service s'exécute sous ses propres groupes et utilisateurs, sans possibilité de connexion. Pour que le service puisse s'exécuter, il doit avoir accès à plusieurs disques. Pour permettre au service d'accéder aux disques, j'utilise bindfs pour remonter les disques montés par mon compte d'utilisateur connecté avec des autorisations permettant à l'utilisateur du service d'accéder également aux disques montés.

Le service fonctionne avec succès. Cependant, je peux voir des problèmes avec cette approche car si je redémarre et que le service démarre avant que je ne me connecte, il échouera, je présume, car je ne me suis pas encore connecté, mon compte d'utilisateur ne sera pas monté sur les disques, bindfs n'aura rien à remonter et le service n'aura pas accès aux disques.

Alors, quel est le meilleur moyen d’exécuter le service et de donner à ses utilisateurs l’accès à ces disques? L’unité peut-elle monter les disques de manière à ce qu’ils soient accessibles au service et à mon compte utilisateur? Est-ce que la seule solution pour exécuter le démon sous mon compte d'utilisateur? Ou est-ce que je l'aborde sous un angle totalement erroné?

Toute aide sera fortement appréciée.

2
Marc A

Ainsi, après un peu plus de recherches, j'ai pu résoudre mon problème en créant un nouveau groupe et en y ajoutant mon compte d'utilisateur et mon compte de service. Ensuite, dans fstab, j'ai monté les disques en utilisant mon compte d'utilisateur et le nouveau groupe en tant que propriétaire, puis je l'ai configuré pour un montage automatique au démarrage. Au démarrage, les disques sont montés et les services y ont accès.

Vous trouverez des instructions détaillées sur la manière de procéder ci-dessus dans ce réponse .

1
Marc A