chemin relatif sous linux

Tout sur les langages de programmation.

chemin relatif sous linux

Messagepar HappyMan » 12 Février 2018, 21:48

Salut les potos,

Je me mets au C sous linux.

Je vous explique la chose.

Je crée une page web en php avec laquelle je lance un programme grace à:
Code: Tout sélectionner
echo exec('/home/pi/somfy/somfy tous haut


le programme somfy utilise un fichier txt:
Code: Tout sélectionner
RollFic = "un.txt"
fp = openfile (RollFic, "r+");


tout tourne sur le même system
le fichier un.txt est dans le même répertoire que l'executable somfy
Quand je lance le soft depuis la console tout se passe à merveille.

Mais avec la page web,l'exectable se lance mais quelque soit ce que je mets dans RollFic même en utilisant le chemin complet "/home/pi/somfy/un.txt" l'executable n'arrive pas à ouvrir le fichier txt.
J'ai essayé de changer le répertoire mais rien n'y fait. Une idée ?

HM
Qui rira n'amasse pas mousse.
A la saint Barnabé on fait la chasse au boulet.
A la saint Alban la misère s'abat sur le gland.
Avatar de l’utilisateur
HappyMan
Ultra Crackeur !!
Ultra Crackeur !!
 
Messages: 311
Inscription: 21 Novembre 2006, 11:43
Localisation: Paris

Re: chemin relatif sous linux

Messagepar etherlord » 13 Février 2018, 08:24

Je dirais que la page web n'a pas le droit d'ouvrir le fichier, mais cela serait plus facile avec le message d'erreur.

Sinon les logs du service web, ils disent quoi ?

etherlord
etherlord
Triumvirat
Triumvirat
 
Messages: 2547
Inscription: 22 Mars 2004, 16:12

Re: chemin relatif sous linux

Messagepar HappyMan » 13 Février 2018, 10:56

Bonjour,

Je pense aussi à une histoire de permission.

Voici ce que j'ai trouvé dans error.log d'apache
Code: Tout sélectionner
...
[Mon Feb 12 20:27:00.645310 2018] [:error] [pid 794] [client 192.168.1.18:37912] PHP Notice:  Undefined index: H1 in /$
wiringPiSetup: Unable to open /dev/mem or /dev/gpiomem: Permission denied.
  Try running with sudo?
wiringPiSetup: Unable to open /dev/mem or /dev/gpiomem: Permission denied.
  Try running with sudo?
[Mon Feb 12 20:27:04.004301 2018] [:error] [pid 794] [client 192.168.1.18:37912] PHP Notice:  Undefined index: H1 in /$
wiringPiSetup: Unable to open /dev/mem or /dev/gpiomem: Permission denied.
  Try running with sudo?
[Mon Feb 12 20:28:10.918572 2018] [:error] [pid 795] [client 192.168.1.18:37914] PHP Notice:  Undefined index: H1 in /$
wiringPiSetup: Unable to open /dev/mem or /dev/gpiomem: Permission denied.
  Try running with sudo?
[Mon Feb 12 21:01:34.744331 2018] [:error] [pid 412] [client 192.168.1.18:37948] PHP Notice:  Undefined index: H1 in /$


Je peux comprendre qu'il fasse référence à wiringPiSetup mais pas un mot sur mon fichier un.txt
mon message d'erreur lui s'affiche pourtant correctement sur ma page web:
Code: Tout sélectionner
fp = fopen(RollFic, "r+");
si fp est pas null alors ...
sinon printf("Impossible d'ouvrir le fichier: %s", RollFic);


On peut prendre le truc autrement.
Voici le besoin:
Créer une page web qui execute un progamme qui lit et écrit dans un fichier.

Où, à votre avis, devrais-je mettre tous ces fichiers ?
La page web dans /var/www/html/
le fichier executable et le fichier un.txt dans /var/www/store/ avec quels droits ?

HM
Qui rira n'amasse pas mousse.
A la saint Barnabé on fait la chasse au boulet.
A la saint Alban la misère s'abat sur le gland.
Avatar de l’utilisateur
HappyMan
Ultra Crackeur !!
Ultra Crackeur !!
 
Messages: 311
Inscription: 21 Novembre 2006, 11:43
Localisation: Paris

Re: chemin relatif sous linux

Messagepar Hao » 13 Février 2018, 13:34

Et si depuis php, au lieu d'appeler ton programme somfy, tu essai simplement de lancer un cat sur le fichier .txt.
Ça te permettrai déjà de voir si l'utilisateur Apache à les permissions en lecture sur le fichier en question.
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 275
Inscription: 27 Novembre 2013, 22:24

Re: chemin relatif sous linux

Messagepar etherlord » 14 Février 2018, 08:50

Oui il manque des permissions.

Dans le fichier Apache2.conf tu doit trouver sous quel user Apache tourne. Il faut autoriser ce user à lire/exécuter.

Après si tu défini les droits sur le fichier, peut importe où il est.

etherlord
etherlord
Triumvirat
Triumvirat
 
Messages: 2547
Inscription: 22 Mars 2004, 16:12

Re: chemin relatif sous linux

Messagepar HappyMan » 14 Février 2018, 10:06

Effectivement c'était bien un problème de droit, que j'ai résolu en donnant la possibilité a tout le monde de modifier le fichier txt. Je préfère ta méthode etherlord
Autre question: J'utilise une librairie wiringPi, n'est il pas dangereux de donner les droits d'execusion à l'utilisateur apache sur le dossier "/dev/mem" et "/dev/gpiomem" ?

Je ne connais pas bien la sécurité chez linux (chez windows c'est plus simple...)

HM
Qui rira n'amasse pas mousse.
A la saint Barnabé on fait la chasse au boulet.
A la saint Alban la misère s'abat sur le gland.
Avatar de l’utilisateur
HappyMan
Ultra Crackeur !!
Ultra Crackeur !!
 
Messages: 311
Inscription: 21 Novembre 2006, 11:43
Localisation: Paris

Re: chemin relatif sous linux

Messagepar Hao » 14 Février 2018, 18:36

HappyMan a écrit:Autre question: J'utilise une librairie wiringPi, n'est il pas dangereux de donner les droits d'execusion à l'utilisateur apache sur le dossier "/dev/mem" et "/dev/gpiomem" ?
HM


Ce ne sont pas des dossiers, mais des devices files. Quelles sont les permissions de /dev/gpiomem (ls -l /dev/gpiomem) ?
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 275
Inscription: 27 Novembre 2013, 22:24

Re: chemin relatif sous linux

Messagepar HappyMan » 14 Février 2018, 20:14

crw-rw---- 1 root gpio 244, 0 Feb 14 09:26 /dev/gpiomem
Qui rira n'amasse pas mousse.
A la saint Barnabé on fait la chasse au boulet.
A la saint Alban la misère s'abat sur le gland.
Avatar de l’utilisateur
HappyMan
Ultra Crackeur !!
Ultra Crackeur !!
 
Messages: 311
Inscription: 21 Novembre 2006, 11:43
Localisation: Paris

Re: chemin relatif sous linux

Messagepar Hao » 14 Février 2018, 20:28

Et si tu essayes d'ajouter l'utilisateur Apache au groupe gpio ?

Sous Debian :
Code: Tout sélectionner
adduser tonUtlisateurApache gpio

La commande n'est peut être pas la même sur les distros RasPi.
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 275
Inscription: 27 Novembre 2013, 22:24

Re: chemin relatif sous linux

Messagepar HappyMan » 14 Février 2018, 22:29

bon ben voilà mon interface web fonctionne, je peux maintenant ouvrir et fermer mes volets depuis n'importe quel terminal.
Je vais creuser un peu plus la sécurité / les comptes / les droits sous linux. Merci pour les infos.
Qui rira n'amasse pas mousse.
A la saint Barnabé on fait la chasse au boulet.
A la saint Alban la misère s'abat sur le gland.
Avatar de l’utilisateur
HappyMan
Ultra Crackeur !!
Ultra Crackeur !!
 
Messages: 311
Inscription: 21 Novembre 2006, 11:43
Localisation: Paris


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron