par
damien01 » 13 avr. 2011, 01:48
Bonsoir,
J'utilise une fonction qui lit et une autre qui écrit dans un fichier. Seulement si je ne met pas préalablement les droits ça ne marche pas.
Je voulais me servir de la fonction chmod() mais je n'obtiens des modifications des droits que si je créé un fichier à partir du script et non un fichier existant. Je me suis donc dis que c'était peut être un problème lié au 'propriétaire du fichier' j'ai donc essayer de changer le propriétaire du fichier mais encore une fois sans succès. Alors est ce que php est pas exécuté en tant que 'root' et ne peut donc pas changer les droits des fichiers?? ce serait peut être la réponse.
Mais dans ce cas comment pouvoir modifier des droits sur un fichier qui n'appartient pas à 'root'?
$link = 'test.txt';
$data = 'test';
$nameuser = gethostname();
echo $nameuser . '<br />';
if (is_file($link))
{
if(chown($link, $nameuser))
echo 'chown ok <br />';
else
echo 'chown merde!!!! <br />';
if(chmod($link, 0777))
echo 'chmod ok <br />';
else
echo 'chmod merde!!!! <br />';
$file = fopen($link, 'w');
if(fwrite($file, $data) === FALSE){
echo 'erreur';
exit();
}
if(@chmod($link, 0444)) echo 'chmod ok <br />';
else echo 'chmod merde!!!!';
}
else
if(touch($link)) echo 'fichier créé <br />';
$stat = stat($link);
print_r(posix_getpwuid($stat['uid']));
Lorsque j'exécute ce script et si je met $link = 'NOM_DE_FICHIER_INEXISTANT"'; dans ce cas le chmod fonctionnera mais pas le chown...
Bonne soirée.
Cordialement,
Damien
Bonsoir,
J'utilise une fonction qui lit et une autre qui écrit dans un fichier. Seulement si je ne met pas préalablement les droits ça ne marche pas.
Je voulais me servir de la fonction chmod() mais je n'obtiens des modifications des droits que si je créé un fichier à partir du script et non un fichier existant. Je me suis donc dis que c'était peut être un problème lié au 'propriétaire du fichier' j'ai donc essayer de changer le propriétaire du fichier mais encore une fois sans succès. Alors est ce que php est pas exécuté en tant que 'root' et ne peut donc pas changer les droits des fichiers?? ce serait peut être la réponse.
Mais dans ce cas comment pouvoir modifier des droits sur un fichier qui n'appartient pas à 'root'?
[php]
$link = 'test.txt';
$data = 'test';
$nameuser = gethostname();
echo $nameuser . '<br />';
if (is_file($link))
{
if(chown($link, $nameuser))
echo 'chown ok <br />';
else
echo 'chown merde!!!! <br />';
if(chmod($link, 0777))
echo 'chmod ok <br />';
else
echo 'chmod merde!!!! <br />';
$file = fopen($link, 'w');
if(fwrite($file, $data) === FALSE){
echo 'erreur';
exit();
}
if(@chmod($link, 0444)) echo 'chmod ok <br />';
else echo 'chmod merde!!!!';
}
else
if(touch($link)) echo 'fichier créé <br />';
$stat = stat($link);
print_r(posix_getpwuid($stat['uid']));
[/php]
Lorsque j'exécute ce script et si je met $link = 'NOM_DE_FICHIER_INEXISTANT"'; dans ce cas le chmod fonctionnera mais pas le chown...
Bonne soirée.
Cordialement,
Damien