Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/03/2016, à 21:42

diakt

Commande non reconnu dans script

Bonjour à tous !

Après plusieurs heures de recherche je viens vers la communauté d'Ubuntu pour essayer de trouver ma solution..

Je possède un Raspberry et j'ai installer la lib motion dessus couplé à une caméra. Des que Motion détecte un mouvement, il est censé m'envoyer un mail.

J'ai créé un petit script qui est appelé des qu'un événement se déclenche : start_event.sh

#!/bin/sh
echo "Contenu du mail" | mail -s "Titre du mail" mon@email.fr

Cette commande s’exécute bien directement dans le terminal et également lorsque je me place dans le dossier  et que j'éxecute ./start_event.sh

Mon problème vient du fait que mon script est appelé dans le fichier de conf de Motion :

on_event_start sudo /home/motion/script/./start_event.sh 

et là rien ne se passe.. mon script ne s’exécute pas..
J'ai pensé à un problème de permission alors je lui ai mis un chmod 777 dessus..

Ah, petite précision, si dans le fichier de conf de motion je fais :

on_event_start  echo "Contenu du mail" | mail -s "Titre du mail" mon@email.fr 

ça fonctionne..

Si vous avez des idées smile
Merci

Dernière modification par diakt (Le 06/03/2016, à 22:13)

Hors ligne

#2 Le 06/03/2016, à 21:54

J5012

Re : Commande non reconnu dans script

et ca repond au sudo tout seul, ou ca ouvre une fenetre pour que tu puisses taper ton passe ?

Hors ligne

#3 Le 06/03/2016, à 22:15

diakt

Re : Commande non reconnu dans script

Bonsoir et merci !

Petite coquille dans mon post initial, c'est rectifiée.

Non ça répond au sudo tout seul pas besoin de taper de mdp

Hors ligne

#4 Le 06/03/2016, à 22:23

Watael

Re : Commande non reconnu dans script

salut,

donc, tu n'as pas besoin du sudo pour que Motion exécute ta commande, et donc, probablement, ton script.

il est possible que on_event_start ne prenne qu'un seul argument, en l'espèce sudo, tout seul, sans la commande qui suit.

Dernière modification par Watael (Le 06/03/2016, à 22:24)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 06/03/2016, à 22:30

J5012

Re : Commande non reconnu dans script

pourquoi utiliser sudo alors ?

il suffit de donner des droits d'acces et d'execution du script à l'utilisateur "motion" ...

Hors ligne

#6 Le 07/03/2016, à 20:13

diakt

Re : Commande non reconnu dans script

En effet, merci maintenant l'événement on_event_start appel bien mon script.

Mais dans mon script, je fais appel a un autre script (censé m'uploader mes photos sur mon dropbox):

#!/bin/sh

echo "Contenu du mail" | mail -s "Titre du mail" mon@email.fr    

/home/script/./dropbox_uploader.sh -s upload /home/photos /motion

Mon mail s'envoie bien smile, mais mon upload du script dropbox_uploader.sh ne s'excute pas.

Mais l'upload fonctionne si je met directement dans le terminal, également si j’exécute mon script et aussi si je la place après

on_event_start

Un problème de $PATH peut être ?

Hors ligne

#7 Le 07/03/2016, à 20:52

J5012

Re : Commande non reconnu dans script

à qui appartient dropbox_uploader.sh ?

Hors ligne

#8 Le 07/03/2016, à 21:01

diakt

Re : Commande non reconnu dans script

J'ai un chmod 777 dessus

Hors ligne

#9 Le 07/03/2016, à 21:08

J5012

Re : Commande non reconnu dans script

J5012 a écrit :

à qui appartient dropbox_uploader.sh ?

la reponse n'est pas 777 ...

Hors ligne

#10 Le 07/03/2016, à 21:48

diakt

Re : Commande non reconnu dans script

Alors là je vois pas ce que tu veux dire par "appartient"

Hors ligne

#11 Le 09/03/2016, à 19:07

diakt

Re : Commande non reconnu dans script

Sujet résolu en modifiant les Sticky-bit.

Motion est un utilisateur en tant que tel.
Quand je lance mon script avec l'utilisateur "user"  ( lui même qui l'avez créé) forcément ça fonctionne.
Mais quand je lance motion avec l'utilisateur "User", lorsqu'un événement se déclenche motion appel un script qui est alors appelé avec les droits du "user motion".

Merci!

Hors ligne

#12 Le 09/03/2016, à 22:06

J5012

Re : Commande non reconnu dans script

777 ce sont des permissions d'acces ...
ignorer le proprietaire et activant les sticky bits est dangereux pour la secu ...

pourquoi as-tu ces differents scripts sous des homes differents ????

Hors ligne

#13 Le 11/03/2016, à 22:35

diakt

Re : Commande non reconnu dans script

Oui le chmod 777 c'est juste pour réaliser mes tests sur mes scripts perso

Par contre, il me semblait que le 777 donnait justement le droit d’exécution sur le fichier à tous les utilisateurs quelque soit le "user" propriétaire.
Mais en ressortant mes cours de linux j'ai vu que les sticky bits sont justement prévus pour exécuter un script "en simulant avoir" les droits du propriétaire ( les sticky-bits restent une notion complexe)

Motion est un libs qui créé son user. Dès qu'il appelle un script, modifie ou crée un fichier c'est avec son utilisateur motion. Sauf que moi j'utilise l'utilisateur 'user' pour exécuter mon script Motion.

Hors ligne

#14 Le 12/03/2016, à 02:17

J5012

Re : Commande non reconnu dans script

qu'est-ce qui empeche tous les scripts de s'executer sur le meme user ?

Hors ligne