Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2872 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  je galere avec mes chmod

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

je galere avec mes chmod

n°838718
freed102
Arayashiki
Posté le 01-09-2004 à 13:41:39  profilanswer
 

j'arrete pas de faire des :
 
chmod('path/fichier',0755);
 
sur une dossier...
 
et il me retourne tout le temps :
 
Forbidden
You don't have permission to access /cgi-bin/logos/ on this server.

 
 
ou des :
 
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator...

 
... bouhhhhh !!!

mood
Publicité
Posté le 01-09-2004 à 13:41:39  profilanswer
 

n°838780
freed102
Arayashiki
Posté le 01-09-2004 à 14:36:17  profilanswer
 

j'ai fait un script...
 
 

Code :
  1. <?php
  2. $rep="cgi-bin/logos/";
  3. //change le mode du repertoire
  4.  $param="0755";
  5.  if (chmod($rep, $param))
  6.  {
  7.  echo "La commande chmod sur le repertoire \"$rep\" avec le parametre \"$param\" a bien été executée <br />";
  8.  }
  9.  else
  10.  {
  11.  echo "Erreur d'execution de la commande chmod sur \"$rep\" avec le parametre \"$param\"";
  12.  }
  13. if (is_dir($rep))
  14. {
  15.    if ($dh = opendir($rep))
  16.    {
  17.        while (($file = readdir($dh)) !== false)
  18.    {
  19.     if ($file != "." && $file != ".." )
  20.  {
  21.           $filelist[]= $file;
  22.  }
  23.        }
  24.        closedir($dh);
  25.    echo "Il y a ".count($filelist)." fichiers dans le repertoire ".$rep."<br />";
  26.  }
  27. }
  28. else
  29. {
  30. echo "Mauvais dossier";
  31. }
  32. // change le mode de chaque fichier $filelist
  33. if(!empty($filelist))
  34. {
  35. foreach($filelist as $key)
  36. {
  37.   $param="0755";
  38.   if (chmod($rep.$key, $param))
  39.   {
  40.   echo "La commande chmod sur le fichier \"$rep.$key\" avec le parametre \"$param\" a bien été executée<br />";
  41.   }
  42.   else
  43.   {
  44.   echo "Erreur d'execution de la commande chmod sur le fichier \"$rep.$key\" avec le parametre \"$param\"<br />";
  45.   }
  46. }
  47. }
  48. ?>


 
voila ce que ça me retourne :
 

Code :
  1. La commande chmod sur le repertoire "cgi-bin/logos/" avec le parametre "0755" a bien été executée
  2. Warning: opendir(cgi-bin/logos/): failed to open dir: Permission denied in /u/clonecop/public_html/chmod.php on line 19


 
 :??:  :pt1cable:


Message édité par freed102 le 01-09-2004 à 14:40:12
n°838927
freed102
Arayashiki
Posté le 01-09-2004 à 17:18:03  profilanswer
 

personne n'a un petit tuyau ??? c bizarre non ?

n°838930
kadreg
profil: Utilisateur
Posté le 01-09-2004 à 17:20:14  profilanswer
 

Tu n'a le droit que de tripoter des fichiers qui t'appartiennent. cgi-bin ne doit pas être à toi (enfin, au user qui fait tourner php).
 


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°838932
skeye
Posté le 01-09-2004 à 17:22:47  profilanswer
 

http://www.nexen.net/docs/php/anno [...] is-dir.php

Citation :


Note
 
Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache plus de détails.


 
http://www.nexen.net/docs/php/anno [...] tcache.php
 
[edit]
En bref, je pense que tu te fais jeter par is_dir parce-qu'il a gardé en cache les anciens droits de ton repertoire, d'où nécéssité d'appeler clearstatcache avant!


Message édité par skeye le 01-09-2004 à 17:30:04

---------------
Can't buy what I want because it's free -
n°839178
ratibus
Posté le 01-09-2004 à 21:26:32  profilanswer
 

Le paramètre du chmod doit être en octal
 
donc $param = 0775; et non pas $param = "0775"

n°839553
freed102
Arayashiki
Posté le 02-09-2004 à 11:15:16  profilanswer
 

ratibus a écrit :

Le paramètre du chmod doit être en octal
 
donc $param = 0775; et non pas $param = "0775"


c exactement ça !!
Merci beaucoup !! now ça marche ! :)
thx !!  
(et même mon foreach marche à merveille alors que j'avais jamais utilisé ce truc !)

n°839555
freed102
Arayashiki
Posté le 02-09-2004 à 11:17:36  profilanswer
 

freed102 a écrit :

c exactement ça !!
Merci beaucoup !! now ça marche ! :)
thx !!  
(et même mon foreach marche à merveille alors que j'avais jamais utilisé ce truc !)


 
par contre peut on m'expliquer pourquoi j'ai ça comme result :
 


La commande chmod sur le repertoire "cgi-bin/logo/" avec le parametre "493" a bien été executée  
Il y a 7 fichiers dans le repertoire cgi-bin/logo/
La commande chmod sur le fichier "cgi-bin/logo/.AURORE.gif" avec le parametre "0755" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.AMEX.gif" avec le parametre "0755" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.CLEF.gif" avec le parametre "0755" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.MASTERCARD.gif" avec le parametre "0755" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.VISA.gif" avec le parametre "0755" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.INTERVAL.gif" avec le parametre "0755" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.CB.gif" avec le parametre "0755" a bien été executée


 
... il sort d'ou le "493" ??? ça veut dire quoi ?

n°839559
Xav_
The only one...
Posté le 02-09-2004 à 11:20:05  profilanswer
 

0755 en octal, tu le converti en décimal (calculette windows fera l'affaire) et tu trouve: 493 !!!


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°839586
freed102
Arayashiki
Posté le 02-09-2004 à 11:38:05  profilanswer
 

Xav_ a écrit :

0755 en octal, tu le converti en décimal (calculette windows fera l'affaire) et tu trouve: 493 !!!


 
bon je capte pas.. mon prob n'est pas encore resolu à 100%
 :??:  
 
donc ma reponse est bonne :

La commande chmod sur le repertoire "cgi-bin/logo/" avec le parametre "493" a bien été executée  
Il y a 7 fichiers dans le repertoire cgi-bin/logo/
La commande chmod sur le fichier "cgi-bin/logo/.AURORE.gif" avec le parametre "493" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.AMEX.gif" avec le parametre "493" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.CLEF.gif" avec le parametre "493" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.MASTERCARD.gif" avec le parametre "493" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.VISA.gif" avec le parametre "493" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.INTERVAL.gif" avec le parametre "493" a bien été executée
La commande chmod sur le fichier "cgi-bin/logo/.CB.gif" avec le parametre "493" a bien été executée


 
mais j'accede toujours pas au dossier !!!
 

Forbidden
You don't have permission to access /cgi-bin/logo on this server.
 
 
--------------------------------------------------------------------------------
 
Apache/1.3.31 Server at www.clonecopy.net Port 80

mood
Publicité
Posté le 02-09-2004 à 11:38:05  profilanswer
 

n°839598
freed102
Arayashiki
Posté le 02-09-2004 à 11:49:24  profilanswer
 

Xav_ a écrit :

0755 en octal, tu le converti en décimal (calculette windows fera l'affaire) et tu trouve: 493 !!!


 
ça... je sais pas faire ! lol (ça doit pas etre bien compliqué mais je sais pas faire !
 
octal et binaire ? c pas pareil ?

n°839601
jagstang
Pa Capona ಠ_ಠ
Posté le 02-09-2004 à 11:52:31  profilanswer
 

octal = (base 8)
binaire = (base 2)
 
pis 0755 c'est pas du binaire [:mlc]
 
faut revoir vos classiques là...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°839604
freed102
Arayashiki
Posté le 02-09-2004 à 11:55:20  profilanswer
 

JagStang a écrit :

octal = (base 8)
binaire = (base 2)
 
pis 0755 c'est pas du binaire [:mlc]
 
faut revoir vos classiques là...


 
oui là je sais pas ça encore... en fait je me suis jamais vraiment posé la question !
 
... bon mon prob persiste...
 
http://www.clonecopy.net/cgi-bin/logo/VISA.gif

n°839606
masklinn
í dag viðrar vel til loftárása
Posté le 02-09-2004 à 11:57:47  profilanswer
 

freed102 a écrit :

ça... je sais pas faire ! lol (ça doit pas etre bien compliqué mais je sais pas faire !
 
octal et binaire ? c pas pareil ?


je sais pas toi mais perso je préfère faire 10000 pompes en binaire qu'en octal :whistle:  
(et accessoirement je préfère encore les faire en octal qu'en base ascii)


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°839607
freed102
Arayashiki
Posté le 02-09-2004 à 11:59:16  profilanswer
 

bon... j'ai devié mon prob.. effectivement je crois que j'ai des prob avec le dossier cgi-bin...  

n°839741
Xav_
The only one...
Posté le 02-09-2004 à 13:28:03  profilanswer
 

JagStang a écrit :

octal = (base 8)
binaire = (base 2)
pis 0755 c'est pas du binaire [:mlc]
faut revoir vos classiques là...


 
a quel moment j'ai parlé de binaire ???  :??:  
 
mes classiques marchent plutot pas mal il me semble:
j'ai dis "0755" octal et "493" décimal --> je continu de penser que c'est juste... ;)
 
Pour plus de détails:
01ED - Hexa (base 16) - (0123456789ABCDEF)
493 - Décimal (base 10) - (0123456789)
0755 - Octal (base 8) - (01234567)
111101101 - Binaire (base 2) - (01)
 
Je pense pas pouvoir faire mieux... :)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°839755
sircam
I Like Trains
Posté le 02-09-2004 à 13:35:22  profilanswer
 

Nan, c'est freed qui demandait si octal = binaire. No way.
 
Parfois je me demande si certains "développeurs" comprennent vraiment ce qu'ils sont en train de faire.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°839786
Xav_
The only one...
Posté le 02-09-2004 à 13:57:20  profilanswer
 

oki (je laisse les détails quand meme, j'ai l'impression que ça peu servir)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°839845
jagstang
Pa Capona ಠ_ಠ
Posté le 02-09-2004 à 14:13:09  profilanswer
 

en effet Xav_ je ne m'adressais pas à toi...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°840118
freed102
Arayashiki
Posté le 02-09-2004 à 15:52:35  profilanswer
 

sircam a écrit :

Nan, c'est freed qui demandait si octal = binaire. No way.
 
Parfois je me demande si certains "développeurs" comprennent vraiment ce qu'ils sont en train de faire.


 
... et vlan ! ramasse tes dents ! :heink:

n°840122
freed102
Arayashiki
Posté le 02-09-2004 à 15:53:17  profilanswer
 

les bases je les connais.. Mais les details... beaucoup moins !

n°840150
sircam
I Like Trains
Posté le 02-09-2004 à 16:16:05  profilanswer
 

Désolé, je ne voulais pas te blesser. Ce n'est certainement pas un reproche que je voulais t'adresser.
 
Tu prends ça un peu à l'envers en fait. La conversion d'une base vers une autres (binaire, octal, ...) fait partie... des bases, au même titre que les structures de données, les algos élémentaires, ...
 
Le reste vient au dessus. Tu utilises une méthode, chmod en l'occurence, de manière profane, sans vraiment comprendre la signification de l'argument qui lui est passé. Tu ne pourras pas vraiment comprendre à quoi il sert, ni identifier l'erreur correspondante 493 si tu ne possède pas cette base. Et il en sera ainsi pour 1000 et une choses. C'est ce qui peut te bloquer dans ton évolution.
 
Je ne te range pas dans la catégorie des "script-kiddies", qui copient-collent du code sans rien comprendre, pour ensuite essayer de chipoter ça et là et de l'adapter au cas de figure.
 
Reprends la remarque de Jag, "faut revoir vos classiques" : c'est bien de celà dont je parle. Que tu sois développeur PHP, Java ou C, ce tronc commun, indépendant du langage, est la clef de voûte qui fait tenir tout l'édifice.
 
Maintenant, se farcir tout ça, des trucs peu fonctionnels sur le moment et pas toujours marrants, nécessitant pas mal d'étude... on peut être tenté de se lancer comme ça, sans préalable, ce que je comprends parfaitement, et respecte.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°840208
freed102
Arayashiki
Posté le 02-09-2004 à 16:53:45  profilanswer
 

Que je ne connaisse pas le binaire ou l'octale ou l'hexadecimal au pied de la lettre... c une lacune... j'en suis conscient !
Mais bon en ce qui concerne chmod... quand tu regardes l'API ils ne disent pas vraiment ce que veulent dire ces chiffres ou bien faut capter !!!
 

Code :
  1. Le paramètre mode est constitué de trois valeurs octales qui spécifient les droits pour le propriétaire, le groupe du propriétaire et les autres, respectivement. Chaque composant peut être calculé en ajoutant les droits désirés. Le chiffre 1 donne les droits d'exécution, le chiffre 2 les droits d'écriture et le chiffre 4 les droits de lecture. Ajoutez simplement ces nombres pour spécifier les droits voulus. Vous pouvez aussi lire le manuel des systèmes Unix avec man 1 chmod et man 2 chmod. Exemple 2. Comment utiliser le paramètre mode de chmod()
  2. // Lecture et écriture pour le propriétaire, rien pour les autres
  3. chmod ("/un_dossier/un_fichier", 0600);
  4. // Lecture et écriture pour le propriétaire, lecture pour les autres
  5. chmod ("/un_dossier/un_fichier", 0644);
  6. // Tous pour le propriétaire, lecture et exécution pour les autres
  7. chmod ("/un_dossier/un_fichier", 0755);
  8. // Tout pour le propriétaire, lecture exécution pour le groupe, rien pour les autres
  9. chmod ("/un_dossier/un_fichier", 0750);


 
... et que 0755 vaut 493 ... j'en suis fort aise !!! Mais bon.. je me sens pas spécialement avancé !!!
 
Cependant je vais me pencher là dessus ça pourra me servir (je vais revoir mes vieux manuels de mon Atari ST et Falcon... c'est dans les vieux plats qu'on fait les meilleurs soupes !!!)

n°840218
Sebastien
Posté le 02-09-2004 à 16:58:57  profilanswer
 

Citation :

quand tu regardes l'API ils ne disent pas vraiment ce que veulent dire ces chiffres ou bien faut capter !!!


1 = execution
2 = ecriture
4 = lecture
 
751
7 --> ce chiffre est les droits pour le proprietaire (4+2+1)
5 --> pour le groupe (4+1)
1 --> toutes autres personnes


Message édité par Sebastien le 02-09-2004 à 16:59:53
n°840234
masklinn
í dag viðrar vel til loftárása
Posté le 02-09-2004 à 17:19:31  profilanswer
 

ben si la doc est très claire:
* Les droits sont caractérisés par 3 chiffres en octal (donc entre 0 et 7 compris), propriétaire, groupe propriétaire et autres
* Les niveaux de droits correspondent au code 1 = execution, 2 = écriture, 4 = lecture
* Pour calculer les droits, il suffit d'ajouter les valeurs des niveaux
Donc 0 = rien, 1 = exec, 3 = exec+ecriture, 4 = lecture, 5 = exec+lecture, 6 = lecture+ecriture et 7 = tous les droits
* Pour affecter les droits, il suffit d'affecter la valeur octale obtenue au moyen de chmod
 
Ensuite, le message d'erreur convertit ton octal (0755 = octal(755)) en décimal (493), parce que le système d'IO fonctionne en décimal c'est tout


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°840250
sircam
I Like Trains
Posté le 02-09-2004 à 17:32:02  profilanswer
 

freed102 a écrit :

Que je ne connaisse pas le binaire ou l'octale ou l'hexadecimal au pied de la lettre... c une lacune... j'en suis conscient !
Mais bon en ce qui concerne chmod... quand tu regardes l'API ils ne disent pas vraiment ce que veulent dire ces chiffres ou bien faut capter !!!


Justement ! C'est précisemment ce manque de bagage qui fait que ça n'a pas fait 'tilt'. C'est vrai que ce passage de la doc est super mal écrit (et la VO ne vaut pas mieux), mais toutes ces connaissances que tu qualifiais de "détails" t'auraient mis la puce à l'oreille.
 
Ceci dit, quant bien même la doc aurait été correctement torchée, ton approche serait restée la même, càd profane (ce qui n'est nullement péjoratif), puisque "octal" ne t'aurait rien dit.
 
D'ailleurs, je ne sais pas ce que dit ta doc en VF, mais en VO, juste avant le passage que tu cites, on peut lire :
 
" Note that mode is not automatically assumed to be an octal value, (...)"
 
Ca ne m'étonnerait pas que ce passage existe aussi en FR.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°840258
freed102
Arayashiki
Posté le 02-09-2004 à 17:38:27  profilanswer
 
n°840750
sircam
I Like Trains
Posté le 03-09-2004 à 09:15:06  profilanswer
 

Code :
  1. Il est à noter que le mode mode est considéré comme un nombre en notation octale. Afin de vous en assurer, vous pouvez préfixer cette valeur par un zéro (mode):


 
Et bien voilà, octal apparaît aussi en Frenchie, comme je le supposais. [Bourdel, maintenant il m'ouvre la doc uniquement en FR, obligé de virer ses propres cookies :fou:]
 
Il faut remarquer la différence de formulation entre EN et FR, qui me laisse pour le moins perplexe :
 

Code :
  1. Note that mode is not automatically assumed to be an octal value, so strings (such as "g+w" ) will not work properly. To ensure the expected operation, you need to prefix mode with a zero (0):


 
=> Toujours lire la doc dans sa langue d'origine, même si c'est en japonais, en chinois ou en arabe :lol:


Message édité par sircam le 03-09-2004 à 09:16:50

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°840990
freed102
Arayashiki
Posté le 03-09-2004 à 13:08:50  profilanswer
 

pour rendre un fichier executable... c bien le parametre +x ?

n°840994
freed102
Arayashiki
Posté le 03-09-2004 à 13:11:51  profilanswer
 

j'ai fait 0777 ... ça marche :-/

n°841039
masklinn
í dag viðrar vel til loftárása
Posté le 03-09-2004 à 13:46:46  profilanswer
 

tu m'étonnes, t'as filé tous les droits à tout le monde espèce de cochon :o


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°841055
sircam
I Like Trains
Posté le 03-09-2004 à 13:51:15  profilanswer
 

Mais c'est dégueulasse !


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°841186
freed102
Arayashiki
Posté le 03-09-2004 à 15:26:30  profilanswer
 

sircam a écrit :

Mais c'est dégueulasse !


si je veux juste donner les droits d'execution en plus.. je fais 0766(au lieu de 0755) ?

n°841190
freed102
Arayashiki
Posté le 03-09-2004 à 15:28:01  profilanswer
 

bah non... puisque 5 c'est exec+lecture ça devrait suffir !
mais quand je fais 0755 ça marche po !

n°841490
LeSanglier
Posté le 03-09-2004 à 20:29:42  profilanswer
 

Salut à tous !
 
J'ai ce petit soucis avec le chmod de php :  
 
Code :  
 $d = dir($dirName);
 chmod($d->path,0777);
 
Résultat :  
 
Warning: chmod(): Operation not permitted in /home/reseau/public_html/dirlist.php on line 18
 
Je veux donc "chmod"é un répertoire que j'ai créé moi-même,
 
J'ai mis Safe_mode = on dans le php.ini
Comme vous pouvez le voir, je suis sous Linux.
 
Un indice ?  
 
Merci !

n°843586
freed102
Arayashiki
Posté le 06-09-2004 à 17:44:05  profilanswer
 

lesanglier a écrit :

Salut à tous !
 
J'ai ce petit soucis avec le chmod de php :  
 
Code :  
 $d = dir($dirName);
 chmod($d->path,0777);
 
Résultat :  
 
Warning: chmod(): Operation not permitted in /home/reseau/public_html/dirlist.php on line 18
 
Je veux donc "chmod"é un répertoire que j'ai créé moi-même,
 
J'ai mis Safe_mode = on dans le php.ini
Comme vous pouvez le voir, je suis sous Linux.
 
Un indice ?  
 
Merci !


 
moi je fais direct un
 
$dir="path/dossier/";
mkdir($dir);
chmod($dir,0755);

n°843605
simogeo
j'ai jamais tué de chats, ...
Posté le 06-09-2004 à 17:55:41  profilanswer
 

Citation :

cgi-bin/logo/.CB.gif


 
y'aurait pas comme un point en trop là ? o_O


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°843617
freed102
Arayashiki
Posté le 06-09-2004 à 18:08:19  profilanswer
 

non non ça c t une erreur de concatenation lors de l'affichage (echo)
 
echo "La commande chmod sur le fichier \"$rep.$key\" avec le parametre \"$param\" a bien été executée<br />";

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  je galere avec mes chmod

 

Sujets relatifs
[Access] Galère avec les GraphiquesAspirateur de site et CHMOD
CHMOD avec le mode passé en POST ...PhP et chmod 777, help ???
Putain de problème de noob mais je galère....galère avec TabStrip
[SAX] Vu l'exemple MSDN c'est assez galère à utiliser non ?Galere ce Mozilla tout naze !!!
je galere avec GridBagLayout[PHP/FTP]Free + chmod
Plus de sujets relatifs à : je galere avec mes chmod


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)