07-05-2010, 08:07 AM
Bonjour à tous voilà j'ai des soucis
de droit avec fedora, puis des souci avec php alors je largue mon long post en espérant avoir des réponses!!
voila les soucis :
en faite j'ai un repertoire /home/ftp qui contiendra des dossiers personnels pour chaque employés de la société ou je fais mon stage et dans les dossiers des employés ceux ci auront les dossiers de leur client, les clients eux ne pourront que déposer des fichier dans leur répertoire ftp et cela enverra un mail automatique (mail rempli via un formulaire) à l'employé qui le suit avec le lien du fichiers sur le ftp ce qui donne une architecture comme ceux :
/home/ftp/nom_employé/client/fichiers_client
ce que je souhaite c'est supprimé les fichiers se situant dans les dossiers des clients (voir des employés) au bout de 21jours après dépôt
donc j'ai cherché un peu et j'ai trouvé ceux ci :
0 0 * * * /usr/sbin/tmpwatch -m 24 /home/ftp/*/*/*
en gros tout les jours à minuit cela effacera tout les fichiers de plus de 24h
de tout les fichiers, des dossiers et sous dossier
donc j'ai tester ceux ci comme cela :
38 13 6 5 4 /usr/sbin/tmpwatch -tm 1 /home/ftp/*/*/*
pour regarder ce qu'il me proposait d'effacer
et en faite il voulait simplement me supprimer le fichier contenu ici
/home/ftp/martin/sabine/fic.txt
alors qu'il ne m'a pas proposé les 2 fichiers etant dans le dossier /home/ftp/gaelle/fichier1.txt, fichier2.txt
donc techniquement il aurait du me proposer les 2 fichiers la en plus des 2 autres?
le truc c'est que j'ai dépose les fichier1.txt et fichier2.txt y a 2jours et que depuis j'avais pas fait de modif
donc maintenant si je peux faire un script php ou autre bref...
maintenant autre question en php
j'ai encore un mystère que je ne résolu pas en php
$resp = "martin";
$login="sabine"
pour reprendre l'exemple du tmpwatch
voila j'utilise exec('/root/script/Ajout_user.sh ".$resp." ".$login,$output,$retval);
j'ai fais un print_r($output) dans script sh j'ai mis des echo sur les variables $1 $2
j'ai fais un echo de mkdir /home/ftp/$1/$2
et voila ce que ca m'affiche :
$1=martin $2=sabine /home/ftp/martin/sabine
sauf que le dossier ne se créer pas... (alors qu'en commande direct ca marche)
et que si je ne met qu'un paramètre cela fonctionne
l'utilisateur du script étant apache le user:nobody gpe:nobody et j'ai fixé les droits de /home en 777
/home/ftp en 667
/home/ftp/* 666 (ceux de façon récursive donc les sous dossiers sont aussi en 666)
et pourtant par php mon sous dossier ne se crée pas
autre chose dans mon script bash je fais ceci :
si le dossiers existe message d'erreur
sinon
mkdir /home/ftp/$1/$2
chown -R ftp /home/ftp/$1 ==>je veux que l'utilisateur passe ftp car il a des droits differents d'apache
chmod -R 666 /home/ftp/$1 ==>restriction des permissions
la 1er ligne mkdir ne fonctionne pas et la suivante non plus (seul les changements de droits s'effectue...)
le probleme c'est que je dois faire la différence entre employé et client
vu qu'ensuite en fonction du privilège user ou client la personne ne verra pas la même chose.
Dans la page client celui ci ne pourra voir que /home/ftp/employé/le_nom_du_client
et le responsable du client lui verra affiché tous les dossiers contenu dans /home/ftp/nom_du_responsable/*
donc je ne sais pas d'où vient le problème du mkdir vu qu'en commande cela fonctionne , que pour un paramètre cela fonctionne aussi et que pour 2 paramètres ils sont pris en compte mais le dossier ne se crée pas bref je suis dans un mystère non résolu
Donc je fais appel à vous
Merci d'avance
de droit avec fedora, puis des souci avec php alors je largue mon long post en espérant avoir des réponses!!
voila les soucis :
en faite j'ai un repertoire /home/ftp qui contiendra des dossiers personnels pour chaque employés de la société ou je fais mon stage et dans les dossiers des employés ceux ci auront les dossiers de leur client, les clients eux ne pourront que déposer des fichier dans leur répertoire ftp et cela enverra un mail automatique (mail rempli via un formulaire) à l'employé qui le suit avec le lien du fichiers sur le ftp ce qui donne une architecture comme ceux :
/home/ftp/nom_employé/client/fichiers_client
ce que je souhaite c'est supprimé les fichiers se situant dans les dossiers des clients (voir des employés) au bout de 21jours après dépôt
donc j'ai cherché un peu et j'ai trouvé ceux ci :
0 0 * * * /usr/sbin/tmpwatch -m 24 /home/ftp/*/*/*
en gros tout les jours à minuit cela effacera tout les fichiers de plus de 24h
de tout les fichiers, des dossiers et sous dossier
donc j'ai tester ceux ci comme cela :
38 13 6 5 4 /usr/sbin/tmpwatch -tm 1 /home/ftp/*/*/*
pour regarder ce qu'il me proposait d'effacer
et en faite il voulait simplement me supprimer le fichier contenu ici
/home/ftp/martin/sabine/fic.txt
alors qu'il ne m'a pas proposé les 2 fichiers etant dans le dossier /home/ftp/gaelle/fichier1.txt, fichier2.txt
donc techniquement il aurait du me proposer les 2 fichiers la en plus des 2 autres?
le truc c'est que j'ai dépose les fichier1.txt et fichier2.txt y a 2jours et que depuis j'avais pas fait de modif
donc maintenant si je peux faire un script php ou autre bref...
maintenant autre question en php
j'ai encore un mystère que je ne résolu pas en php
$resp = "martin";
$login="sabine"
pour reprendre l'exemple du tmpwatch
voila j'utilise exec('/root/script/Ajout_user.sh ".$resp." ".$login,$output,$retval);
j'ai fais un print_r($output) dans script sh j'ai mis des echo sur les variables $1 $2
j'ai fais un echo de mkdir /home/ftp/$1/$2
et voila ce que ca m'affiche :
$1=martin $2=sabine /home/ftp/martin/sabine
sauf que le dossier ne se créer pas... (alors qu'en commande direct ca marche)
et que si je ne met qu'un paramètre cela fonctionne
l'utilisateur du script étant apache le user:nobody gpe:nobody et j'ai fixé les droits de /home en 777
/home/ftp en 667
/home/ftp/* 666 (ceux de façon récursive donc les sous dossiers sont aussi en 666)
et pourtant par php mon sous dossier ne se crée pas
autre chose dans mon script bash je fais ceci :
si le dossiers existe message d'erreur
sinon
mkdir /home/ftp/$1/$2
chown -R ftp /home/ftp/$1 ==>je veux que l'utilisateur passe ftp car il a des droits differents d'apache
chmod -R 666 /home/ftp/$1 ==>restriction des permissions
la 1er ligne mkdir ne fonctionne pas et la suivante non plus (seul les changements de droits s'effectue...)
le probleme c'est que je dois faire la différence entre employé et client
vu qu'ensuite en fonction du privilège user ou client la personne ne verra pas la même chose.
Dans la page client celui ci ne pourra voir que /home/ftp/employé/le_nom_du_client
et le responsable du client lui verra affiché tous les dossiers contenu dans /home/ftp/nom_du_responsable/*
donc je ne sais pas d'où vient le problème du mkdir vu qu'en commande cela fonctionne , que pour un paramètre cela fonctionne aussi et que pour 2 paramètres ils sont pris en compte mais le dossier ne se crée pas bref je suis dans un mystère non résolu
Donc je fais appel à vous
Merci d'avance