Commandes Shell 

Commandes Shell et Privilèges

 

Le cœur du contrôle système repose sur les commandes Linux exécutées par PHP via la fonction shell_exec(). Pour que cela fonctionne, le serveur doit avoir des permissions spéciales.

 

I. Commandes Shell Essentielles

Commande ShellUtilisé parAction
sudo systemctl start motioneyesecure_action.php
webhook_presence.php
Active la caméra.
sudo systemctl stop motioneyesecure_action.php
webhook_presence.php
Désactive la caméra.
sudo systemctl is-active motioneyeindex.php, admin.php
webhook_presence.php
Vérifie l'état actuel.
 

II. Configuration du fichier Sudoers

Par défaut, l'utilisateur www-data n'a pas le droit de gérer les services. Nous devons l'autoriser spécifiquement pour MotionEye sans mot de passe.

1. Ouvrir l'éditeur sécurisé :

 
sudo visudo

2. Ajouter les privilèges (à la fin du fichier) :

 
www-data ALL=(ALL) NOPASSWD: /usr/bin/systemctl start motioneye www-data ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop motioneye www-data ALL=(ALL) NOPASSWD: /usr/bin/systemctl is-active motioneye
 

III. Test de validation

Pour vérifier que la configuration est correcte, simulez une exécution par l'utilisateur du serveur web :

 
sudo -u www-data sudo /usr/bin/systemctl is-active motioneye
  • Succès : Le terminal répond active ou inactive sans demander de mot de passe.
  • Erreur : Si on vous demande un mot de passe, vérifiez le chemin de systemctl avec which systemctl.
 
⬅️ Retour à la page précédente