Pas de droit en écriture

Hello

Je viens de passer en 4.2.7 et à cause (je suppose car je suis pas trop code…) des changements dans la sécurité, certains scripts ne fonctionnent plus.

J’ai un de mes script qui écrit un json ici : /var/www/html/fanp11.json et du coup j’ai maintenant un message d’erreur qui me dit « Json invalide ou non décodable : 403 Forbidden Forbidden You don’t have permission to access this resource »

Est-ce que quelqu’un aurait une solution pour contourner ce problème ?

Désolé, suis un peu une pive niveau code

Le script complet c’est

sudo miiocli --output json fanp11 --ip 192.168.11.55 --token 8629891ecd106a82b11756856086b1a2 status > /var/www/html/fanp11.json

Merci pour votre aide.

Le mettre dans html/data ou dans tout autre dossier ou jeedom te laisse écrire, ou un dossier hors Jeedom

Bonjour,

Pour info un .json n’est pas un script, c’est juste un fichier contenant des données.
Vous tentez d’exécuter miiocli on ne sait pas trop comment ni ce que c’est ni où il se trouve, qui va faire on ne sait pas trop quoi et semble-t-il écrire le résultat dans ce fameux json.
ca fait beaucoup de zones d’ombres

Hello,

Le problème c’est pas « (pour)quoi » mais « ou » :wink: cela dit, si tu veux des infos complémentaires pour dégager les zones d’ombres, tout se trouve ici Air Purifier 3H - #29 par labraud

Je vais tenter la solution de @anon53349806 et je reviens par ici pour vous dire si ça fonctionne comme ça.

Non pas vraiment.
Les changements de sécu en v4.2 n’ont absolument pas été sur les droits d’écriture d’un script qui tournerait sous sudo (en plus!) et qui tenterait d’écrire dans un répertoire x ou y.

Coté server tout est toujours possible.
Par contre client side, depuis le navigateur par exemple, on ne peut plus accéder où on veut.

Donc ma question a tout son sens pour être sur d’aiguiller vers la bonne solution: si le script est en local et tente d’écrire un fichier en local en ayant les droits sudo, écrire dans un autre dossier ne va pas aider.

Effectivement, j’ai la même erreur en ajoutant le répertoire data :-(. Le json est bien écrit, je le retrouve dans le répertoire data.

De ce que je comprends, je me demande si ça ne vient des commandes info binaires :

http://192.168.11.16/fanp11.json

J’ai fait une tentative en le formatant ainsi http://192.168.11.16/data/fanp11.json mais toujours la même erreur.

Je m’y connais pas suffisamment pour comprendre le problème si ce n’est que ce sont des questions de droits :slight_smile:

Des commandes info/binaires qui sont liées à un fichier json? du json c’est pas du binaire :thinking:

Vous ne pourrez pas utiliser une url vers un fichier json dans une commande info, c’est justement interdit; quelque soit l’emplacement du fichier json.

Pourtant le script fonctionnait bien jusqu’à maintenant mais je pense qu’on va rapidement avoir des retours, je suis de loin pas le seul à utiliser miiocli pour manager des objets Xiaomi non pris en charge dans le plugin Xiomi Home.

Bonjour, j’ai également le même problème suite au passage en 4.2.7 ce matin alors que tout fonctionné très bien avant

1 « J'aime »

Salut,

ça reste très obscur tout ça pour ceux qui ne voient pas ton écran. Ce sont des commandes du plugin Script ? Il serait peut être bon d’ajouter des captures d’écran…

Tu peux quand même essayer avec :

http://192.168.11.16/core/php/downloadFile.php?pathfile=data/fanp11.json 
1 « J'aime »

Vous le dites vous même, le script fonctionne toujours.

d’où mon interrogation suivante:

et la même réflexion de @Salvialf : que faites-vous avec ce json ensuite? où est-il utilisé?

Pas mieux mais voici une capture avec l’erreur pour une meilleur compréhension.

Pourquoi ne pas mettre les fichiers dans le répertoire prévu pour le plugin alors ?

image

1 « J'aime »

Ca donnerait ça ?

sudo miiocli --output json fanp11 --ip 192.168.11.55 --token 8629891ecd106a82b11756856086b1a2 status > /var/www/html/plugins/script/data/fanp11.json

et

http://192.168.11.16/core/php/downloadFile.php?pathfile=plugins/script/data/fanp11.json

EDIT: ça me fait une erreur 401 :frowning:

Le champ dans le plugin script demande l’adresse du fichier json donc

/var/www/html/plugins/script/data/fanp11.json

Ou comme c’était écrit à l’origine en adaptant… a tester

1 « J'aime »

Toujours une erreur 401

L’eereur est liée à ça http://192.168.11.16/core/php/downloadFile.php?pathfile=plugins/script/data/fanp11.json car je vois bien le json dans le répertoire data du plugin script

Donc relis mon message précédent…

Le downloadfile depuis le plugin script ca n’ira pas, il faut être authentifié (donc avoir mis son login/password) en tant qu’utilisateur donc si c’est pour l’utiliser dans une commande de plugin script ce n’est pas la bonne approche.

Il faut configurer un accès local au fichier et pas passer par http pour que le plugin aille chercher un fichier en local!

Cette fois c’est une erreur curl

C’est du tac au tac hein tu dois vachement chercher… Il faut peut-être adapter le chemin pour ne mettre que plugins/script/data/xxxx.json, je sais pas faut chercher un peu (F12 pour les erreurs du navigateur par exemple)