web-dev-qa-db-fra.com

Autoriser le service systemd à être démarré ou arrêté par un utilisateur autre que Sudo

J'ai une configuration de serveur minecraft sur mon serveur domestique et je veux permettre à n'importe lequel de mes amis de pouvoir entrer en ssh et de démarrer le serveur eux-mêmes. Cependant, je ne veux pas nécessairement leur donner accès à Sudo.

Est-il possible de marquer un service particulier comme pouvant être démarré ou arrêté par n'importe qui ou par des membres d'un groupe particulier?

5
Ryan Stull

Absolument. Alors que Sudoest associé à l’exécution d’une commande sous le nom rootname__, il s’agit d’un système très flexible qui permet de contrôler avec précision qui a accès à l’exécution de commandes spécifiques.

Par exemple, vous pouvez créer un groupe appelé minecraftstarterset y ajouter tous vos amis. Ensuite, vous pouvez définir une règle Sudoqui permet à tous les utilisateurs du groupe minecraftstartersde démarrer ou de redémarrer Minecraft, sans pouvoir utiliser Sudoname__.

Ensuite, dans /etc/sudoers.d/minecraft, vous ajouteriez la syntaxe suivante:

Cmnd_Alias MINECRAFT_CMDS = /bin/systemctl start minecraft, /bin/systemctl restart minecraft
%minecraftstarters ALL=(ALL) NOPASSWD: MINECRAFT_CMDS

Vous avez maintenant défini certaines commandes que le groupe minecraftstarterspeut exécuter avec Sudo(sans nécessiter d'invite de mot de passe supplémentaire).

Conseil: Utilisez visudo -f /etc/sudoers.d/minecraft pour éditer le fichier. Il vérifiera la syntaxe avant de l'enregistrer, en évitant l'état déplorable dans lequel vous cassez votre configuration Sudoname__, de sorte que Sudone fonctionne pas du tout.

7
Mark Stosberg