Linux, exécuter un script en admin

J’ai eu besoin d’automatiser un script en bash unix sur mon Raspberry. Dans ce script, une des commandes nécessite les droits admin, en l’occurrence, mon script devait relancer le serveur HTTP Apache (sudo service apache2 restart).

Le but de ce script est de redémarrer le service, j’ai constaté que mon site retourné une réponse vide. Malheureusement, je n’arrive pas à trouver la cause, la solution temporaire est donc de vérifier l’accessibilité du site et en cas d’erreur, je redémarre le service.

Pour l’automatisation, j’utilise le cron.

Donner le droit admin au script

Une fois que ton script est créé et qu’il est fonctionnel, par exemple /home/chez_moi/test_sudo.sh. Je ne prends pas volontairement un script.

Dans un terminal, entres :

sudo visudo

Puis sur le modèle :

#Cmnd alias specification
Cmnd_Alias REF_SCRIPT=/home/chez_moi/test_sudo.sh

Et à la fin du fichier, ajoutes :

%root ALL=(ALL) NOPASSWD:REF_SCRIPT

le %root peut être à remplacer par %admin, REF_SCRIPT est une référence que tu choisis.

La syntaxe « Cmnd_Alias » est importante.

Zigomato

Tu enregistres et tu sors.

Automatiser avec le cron

Je ne ferai pas de cours sur le cron, je vais juste te montrer comment ajouter ton script test, dans un terminal, saisis :

sudo crontab -e

Puis à la fin du fichier, ajoutes :

*/30 * * * * bash /home/chez_moi/test_sudo.sh

Une fois que tu fermes, tout est bien pris en compte.

Conclusion

Voilà la petite astuce pour donner les droits à un seul script sans passer par des utilisateurs.

A été vu sur forum.ubuntu-fr.org et sur Linux-attitude.fr.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.