Bonjour à tous,

J'ai créé un script PHP créant un fichier de configuration d'un service du serveur :

file.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<?php
   $fp = fopen('monfichier.ext','w+');
   if(!$fp)
       exit('Erreur Fichier');
    fwrite($fp,'blablabla');
    fclose($fp);
?>
Mon problème est que le propriétaire apres l'exécution du code ci-dessus est l'utilisateur d'apache (www-data) alors que, pour qu'il soit pris en compte par le service, le fichier droit appartenir à root.

J'ai donc utiliser la fonction chown() après la fermeture du fichier fraichement crée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<?php
   $fp = fopen('monfichier.ext','w+');
   if(!$fp)
       exit('Erreur Fichier');
    fwrite($fp,'blablabla');
    fclose($fp);
   chown('monfichier.ext','root');
?>
Ce code génère l'erreur suivante au niveau de l'appel de chown :
Warning: chown() [function.chown]: Operation not permitted
J'ai donc vérifier le propriétaire du fichier file.php :

# ls -l file.php
-rwxrwxrwx root root [...] file.php
l'UID du fichier file.php étant root, ne devrait il donc pas pouvoir rendre root propriétaire du fichier fichier.ext ?


Merci de votre aide !

++ flo