web-dev-qa-db-fra.com

Comment puis-je démarrer / arrêter en tant que service en tant qu'utilisateur normal sans sudo

J'installe mon application personnalisée sur la machine Ubuntu. Maintenant, je veux démarrer/arrêter mon application en tant que service avec un utilisateur normal sans autorisation Sudo.

Mon chemin d'installation de l'application: -

/usr/local/myapp

Remarque: Mon application créera un dossier et des fichiers sous/tmp à traiter lors de l'exécution de l'application.

Après avoir ouvert une session sur la machine Ubuntu, je souhaite commencer comme ci-dessous sans utiliser Sudo.

service myapp start

Comment puis-je y arriver?

3
Galet

Editez le fichier sudoers avec Sudo visudo et ajoutez une ligne

USER        ALL = NOPASSWD: /usr/sbin/service /usr/local/myapp *

Ensuite, vous n'avez pas besoin d'entrer votre mot de passe pour cette commande spécifique.

Autre possibilité: créez un script incluant le démarrage du service, définissez le bit suid pour le script et faites en sorte qu'il soit la propriété de root (Sudo chown root /usr/local/bin/startMyappService).

Attention aux pièges de sécurité! Un tel fichier ne doit avoir aucune permission d'écriture sur quiconque! Utilisez des chemins absolus. Pensez toujours à deux fois ce que vous faites!

3
Philippos