RaspFR :: Forum

Forum de la communauté francophone de Raspberry PI.

Vous n'êtes pas identifié(e).

Annonce

Canal irc: #raspfr sur zeolia.net

#1 02-06-2016 08:16:50

astuces72
Membre
Inscription : 02-06-2016
Messages : 7

sauvegarde sur clé depuis page php

hello les gens !

Je possède un raspberry sous raspbian.
j'ai monté un serveur Apache dessus, et j'ai un site, qui ne s'utilise que par le téléphone.
Il n'y a aucun accès internet dessus, uniquement du local.
Le site permet d'envoyer des documents via le téléphone dans le dossier /var/www/monsite/documents
Jusque là tout le monde arrive à suivre ?

Ce site est utilisé par tous mes amis, donc n'importe qui peut prendre un .pdf ou autres .doc de son téléphone et l'envoyer sur le serveur.
Et n'importe qui peut recuperer tous les fichiers avec sa clé usb.

Ce que je ne parviens pas à faire, c'est la copie des documents sur une clé usb !
Le serveur appache ne vois pas du tout les clé usb insérées !

je parviens bien à voir le dossier /media/pi/ et tous les dossiers/fichiers de /pi/, mais jamais la clé.
Voilà donc mon 1er problème.

Et le second, qui est lié, c'est que je parviens pas non plus à recuperer le nom de la clé usb insérée,
ce qui me posera un problème quand j'aurais résolu le 1er problème, parce que je n'aurai pas d’écran de brancher sur le raspberry.

J'ai mis un bouton sur le site, et depuis le téléphone j’exécute:
j'ai essayé plein de chose pour la copie et pour voir cette satanée clé usb, mais rien à faire.
J'ai essayé de lancer un shell_exec depuis une page php, en mettant le nom de la clé en dur pour mes tests:
shell_exec('cp -R /var/www/monsite/documents /media/pi/CLE/documents');
j'ai essayé un exec:
exec('copie.sh');
le fichier copie.sh contient la commande du shell_exec.
Le fichier copie.sh fonctionne quand je le lance manuellement depuis le dossier du serveur.
La commande shell_exec fonctionne quand je donne le répertoire /media/pi/, j'ai crée un Alias du dossier dans apache2.conf

Voilà un long discours, qui doit être compréhensible, enfin j'espère big_smile

Le plus simple serait de faire la sauvegarde dès l'insertion, mais problème, le satané nom de la clé que je ne parviens pas à trouvé.

Si une bonne âme charitable pouvait m'aider dans la mise en place de cette sauvegarde.
Mon problème est lié à raspbian pour la sécurité de la clé, c'est pour ça que j'ai mis le message ici.
Merci mille fois

Hors ligne

#2 02-06-2016 09:00:49

CrazyCat
Chat
Inscription : 14-01-2016
Messages : 413

Re : sauvegarde sur clé depuis page php

Hum, beaucoup d'informations dans ce post, je vais essayer de trier pour tout comprendre.

Donc, ta clé est connectée sur le RPi et montée dans /media/pi. Par qui est-elle accessible ?
Si tu fais un sudo mount, quel est le résultat ?

Ensuite, en tant que qui s'exécute apache ? A priori (il y a longtemps que je ne m'en sers plus), ce devrait être www-data, donc pas forcément un utilisateur autorisé en lecture/écriture sur ta clé. Essaye de faire su - www-data -c 'touch /media/pi/test.txt' pour voir si ça ne provoque pas une erreur.
Si tel est le cas, il faut que tu donnes les bons droits à ta clé: chmod -R o+w,o+r /media/pi

Et pour ne pas t'embêter avec les alias et compagnie, remplace le répertoire /var/www/monsite/documents par un lien symbolique vers ta clé: ln -s /media/pi /var/www/monsite/documents

Hors ligne

#3 02-06-2016 09:45:58

astuces72
Membre
Inscription : 02-06-2016
Messages : 7

Re : sauvegarde sur clé depuis page php

hello crazy

Alors je ne suis pas un pro linux, c'est ma 1ère fois smile
Je suis connecté par la "session"/"utilisateur" pi, pas de root, je fais des commandes sudo.

Pour le sudo mount, je ne voudrais pas tout recopier, tu veux une information précise ?

pour le su - www-data -c 'touch /media/pi/test.txt'
il me demande un mot de passe !? j'ai essayé raspberry par défaut mais su: échec d'authentification
j'ai essayé:  sudo - www-data -c 'touch /media/pi/test.txt' parce que je fais des fois des expérience, et j'ai sudo: -: commande not found

et la commande chmod -R o+w,o+r /media/pi
j'ai plein d’opération non permise.

quand je clic droit sur pi j'ai: "tout le monde" à tout, propriétaire: root et group: root
et clic droit sur la clé usb  "propriétaire seulement" à tout, propriétaire: pi et group: pi

Je suis dans le caca hein big_smile

Merci en tout cas de te pencher sur mon cas, tu n'es pas dans la mouise toi non plus avec moi wink

Dernière modification par astuces72 (02-06-2016 09:48:16)

Hors ligne

#4 02-06-2016 15:18:04

CrazyCat
Chat
Inscription : 14-01-2016
Messages : 413

Re : sauvegarde sur clé depuis page php

Je vais reprendre dans l'ordre les commandes:

sudo mount | grep /dev/

Tu auras juste l'essentiel (5 à 6 lignes), tu devrais trouver ta clé. Si elle n'y est pas et qu'elle n'est pas montée sur /media/pi, il y a un souci à corriger avant tout.

sudo su - www-data -c 'touch /media/pi/test.txt'

(il manquait le sudo bien placé) Cette commande va essayer de créer le fichier test.txt dans /media/pi (à condition que la clé soit là donc) en tant qu'utilisateur www-data

sudo ls -lha /media/pi/test.txt

Si tu n'as pas de fichier créé, c'est que www-data (l'utilisateur apache) n'a pas le droit d'écrire dans le répertoire

sudo chmod -R o+w,o+r /media/pi

Tu donnes les droits en lecture et écriture à tous les utilisateurs "autres" (qui ne sont ni le propriétaire ni qui appartiennent à son groupe)
Ceci est à faire si www-data ne peut pas écrire là.

Hors ligne

#5 02-06-2016 20:52:49

astuces72
Membre
Inscription : 02-06-2016
Messages : 7

Re : sauvegarde sur clé depuis page php

merci Crazy de te penché sur mon cas big_smile

sudo mount | grep /dev/

Me donne bien ma clé:
/dev/sdb1 on media/pi/CLE type vfat (rw, nosuid,nodev,relatime,uid=1000,gid=1000,fmask=022,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

Donc ceci:

sudo su - www-data -c 'touch /media/pi/CLE/test.txt'

Donne ça: This account is currently not available
MA clé est bien dans /media/pi/, alors la commande du dessous devrait donc être '/media/pi/CLE/test.txt' ?

j'ai fais:

sudo su - pi -c 'touch /media/pi/CLE/test.txt'

Le fichier à bien été créé, puis j'ai essayé avec :

sudo su - root -c 'touch /media/pi/CLE/test.txt'

Pareil, fichier créé.

Pour cette commande:

sudo ls -lha /media/pi/CLE/test.txt

Le fichier qui à été créé avec l'user pi me donne:
-rw-r--r-- 1 pi pi 0 juin  2 /media/pi/CLE/test.txt

sudo chmod -R o+w,o+r /media/pi

Après cette commande, j'ai ressayer de créé le fichier avec www-data, mais je retrouve:
This account is currently not available



J'ai fais une recherche pour connaitre le nom d'user d'apache, donc j'ai fais:

 ps -eaf | grep apache

Et j'ai ça.

root     20430     1  0 12:30 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 1278 1096  0 19:19 ?        00:00:00 /usr/sbin/apache2 -k start
....
....
....
pi            5290         1  2 20:35 ?        00:00:01 leafpad /etc/apache2/apache2.conf
pi            5298     4341 0 20:36 pts/0   00:00:00 grep --color=auto apache

dans apache2.conf j'ai
user ${APACHE_RUN_USER}
group ${APACHE_RUN_GROUP}

Tout copié mano ;)piouffff

Bon, me voilà là wink
Je ne sais pas si tu peux grand chose pour moi.
Merci à toi

Dernière modification par astuces72 (02-06-2016 20:54:08)

Hors ligne

#6 02-06-2016 21:19:28

astuces72
Membre
Inscription : 02-06-2016
Messages : 7

Re : sauvegarde sur clé depuis page php

j'ai essayé ça:
sudo chgrp www-data /media/pi/CLE
sans trop savoir ce que ça allait donné:
opération non permise

j'ai essayé
usermod -a -G www-data pi
qui est censé mettre pi dans le www-data
ensuite
chgrp www-data /media/pi/CLE
chmod g+rwxs /media/pi/CLE
opération non permise

....

Hors ligne

#7 03-06-2016 12:30:37

CrazyCat
Chat
Inscription : 14-01-2016
Messages : 413

Re : sauvegarde sur clé depuis page php

Je pense (il faudra que je vérifie) que comme l'utilisateur www-data n'a pas "d'environnement" défini, tu ne peux pas lui faire exécuter de commande. Ce n'est pas grave.

Le plus simple à mon avis, c'est juste de donner les droit en lecture-écriture à tout le monde sur /media/pi/CLE:

sudo chmod -R go+rw /media/pi/CLE
sudo ln -s /media/pi/CLE /var/www/monsite/documents

Attention: tu ne dois pas avoir de répertoire, lien symbolique ou fichier qui s'appelle déjà /var/www/monsite/documents

Maintenant, si ta clé sert exclusivement à stocker les documents de ton site, une alternative est de modifier le /etc/fstab pour qu'elle monte directement là où tu veux, en lui mettant les droits de lecture/écriture par défaut.

Hors ligne

#8 03-06-2016 14:30:23

astuces72
Membre
Inscription : 02-06-2016
Messages : 7

Re : sauvegarde sur clé depuis page php

mercy crazy,
Compliqué, et comme je test en même temps, c'est encore un message avec pleins de tests...

sudo ln -s /media/pi/CLE /var/www/monsite/cle/

j'ai accès au dossier /var/www/cle avec un lien html, ca c'est fait wink

Je vois bien les dossiers/fichiers présents dans la clé quand je navigue avec l'explorateur PCMan du raspberry
Quand je colles des dossiers à l’intérieur via l'explorateur je les vois aussi dans /medi/pi/CLE, il y a donc une liaison.


mais je ne vois pas son contenu, et je ne peux pas écrire dedans avec apache.
/var/www/cle/CLE avec un lien html:
You don't have permission to acces /cle/CLE/on this server.

un <?php mkdir ("../cle/dossier") ; ?> fonctionne
un <?php mkdir ("../cle/CLE/dossier") ; ?> ne fonctionne pas

avant d’exécuter:

sudo chmod -R go+rw /media/pi/CLE

j'avais: drwx------
et la commande ne change pas le droit, j'ai la même chose.

Un problème de droit sur la clé avec www-data ?

j'ai essayé de faire sur /media/pi/CLE

sudo chown -R www-data:www-data /media/pi/

J'ai opération non permise.

j'ai fais la même chose mais sur /var/www/monsite/cle/CLE
et quand je clic droit sur CLE, et "propriétés" j'ai dans "droits d'accès" proprio: www-data groupe:-www-data et "contrôle d'accès: tout le monde.

encore merci smile

Hors ligne

#9 03-06-2016 15:24:28

astuces72
Membre
Inscription : 02-06-2016
Messages : 7

Re : sauvegarde sur clé depuis page php

je ne sais pas si j'avance, mais je ne recule pas, je dirais qu'un problème en entraîne un autre.

Dans la doc, oui je lis beaucoup smile
Le problème entre Linux et FAT32

Sans entrer dans les détails, des problèmes peuvent survenir du fait de l'usage de FAT32 car ce système de fichier ne gère ni les droits (lecture, écriture, exécution) ni les attributions (groupe, propriétaire). Pour contourner cette imperfection et s'assurer de pouvoir accéder à la clé en FAT32, il est donc parfois utile de la remonter avec l'option « umask=0 »:

et la solution de noté est celle ci:

sudo umount /dev/sdf1 && sudo mount -o umask=0 /dev/sdf1 /media/usbdisk

Mais comme jamais rien n'est facile, et qu'il n'y a pas de suite à la doc, j'ai un autre soucis
sudo umount /dev/sdf1 umount bien la clé, mais la suite me fait une erreur: mount point /media/pi/CLE does not exist...

Moi y'en a pleurer seul dans mon coin smile

Dernière modification par astuces72 (03-06-2016 15:38:17)

Hors ligne

#10 03-06-2016 16:07:09

CrazyCat
Chat
Inscription : 14-01-2016
Messages : 413

Re : sauvegarde sur clé depuis page php

Ta commande ne serait pas plutôt mount /dev/sdf1 /media/pi/CLE ?
Dans la solution que tu as trouvé, /media/usbdisk est le répertoire où tu veux monter ta clé (dans ton cas /media/pi/CLE) et /dev/sdf1 est l'emplacement "pseudo-physique" de ta clé.

Hors ligne

#11 03-06-2016 16:42:36

astuces72
Membre
Inscription : 02-06-2016
Messages : 7

Re : sauvegarde sur clé depuis page php

oui, j'ai juste fais un copier coller de la doc, j'ai bien mis les bonne commande.

En fait, je pense que le problème est bien lié à la fat32
J'ai formaté ma clé en ext4, et je vois les fichiers de la clé depuis php.
Donc, si je ne peux pas voir les fichiers en fat, cette solution de sauvegarde ne me convient absolument pas, je vais pas faire formater les clés de mes potes
pour qu'il ne puisent pas les lires ensuite avec leurs pc smile

La je cale !

Hors ligne

Pied de page des forums