Autoriser le chmod depuis php

Eléphant du PHP | 440 Messages

06 oct. 2009, 15:30

Bonjour à tous


je dispose d'un serveur web (intranet) sous linux, depuis mon site web (en php) il ne m'autorise pas a utiliser chmod depuis php.

A quel endroit je doit configurer ceci pour l'autoriser a modifier les droit.

Code : Tout sélectionner

Warning: chmod() [function.chmod]: Operation not permitted in /var/www/ged/v0.1a/ajax/ajax_new_societe.php on line 45
Lorsque que ce repertoire est créé il est a comme droit 755 avec comme utilisateur:group ==> Root.
Merci

guigui69

ViPHP
ViPHP | 928 Messages

07 oct. 2009, 09:40

Salut, il faudrait que tu changes le groupe de ton fichier / dossier créé afin qu'il corresponde au groupe de PHP, pour que ce dernier ait les droits. C'est simplement une question de logique les droits.

Eléphant du PHP | 440 Messages

07 oct. 2009, 14:13

Merci pour ta réponse,

justement quand il créer le repertoire il le créé en utilisateur root et groupe root.

Code : Tout sélectionner

drwxr-xr-x 2 root root 0 2009-10-07 14:12 1 drwxr-xr-x 2 root root 0 2009-10-07 14:12 2 drwxr-xr-x 2 root root 0 2009-10-07 14:12 3 drwxr-xr-x 2 root root 0 2009-10-07 14:12 4 drwxr-xr-x 2 root root 0 2009-10-07 14:12 5 drwxr-xr-x 2 root root 0 2009-10-07 14:12 6
just ci-dessus le script créer les répertoire 1-6 avec les droit 755 avec utilisateur:group ==> Root.
et donc après il est impossible de créer les sous répertoire
le script php:
///////////CREATION DU DOSSIER SOCIETE
		$res = mysql_query("INSERT INTO societe (id_societe, nom_societe, initial_societe) VALUES ('','$test', '$test2')");
		$dossierdepart = '../../../doc_ged/';
		$res0 = mysql_query("SELECT id_societe, nom_societe FROM societe;");
			while($row = mysql_fetch_array($res0))
					{
					$dossier = ''.$dossierdepart.''.$row['id_societe'].'/';
					
					if(IsDir_or_CreateIt($dossier)) 
					{
					echo "deja écréé==>".$dossier."<<<";
					
					} 
					else 
					{
					$old = umask(0);
					mkdir("$dossier", 0777); 
					umask($old);
					echo 'création du dossier'.$dossier.'<br/>';
					};
					
					//echo ''.$dossier.'<br/>';
					
					//echo "1";
					
					////////////////////////////////
						
						/////////////////////////
						$sql1=mysql_query("select id_type, nom_type FROM type ORDER BY nom_type");
							while($row1 = mysql_fetch_array($sql1))
							{
							
							//dossier Type
							$dossier2 = ''.$dossier.''.$row1["id_type"].'/';
							if(IsDir_or_CreateIt($dossier2)) 
								{
								echo "deja écréé==>".$dossier2."<<<<br/>";
								} 
								else 
								{
								mkdir("$dossier2", 0777); 
								echo 'création du dossier'.$dossier2.'<br/>';
								};
								
								
								////////////////////////////////////
								
								///////////////////////////////////////
								


							}
					}
		
par exemple le dossier 20 se met avec l'utilisateur root, avec des droit 755, et donc il est impossible après pour le script de créer des sous répertoires pour ce dossier.


Quel droit config est erronée? comment résoudre mon probleme ?

Merci

guigui69

Eléphant du PHP | 440 Messages

08 oct. 2009, 09:41

Je revient vers vous,

juste pour faire un test

au lieu de partir sur mon dossier doc_ged (lien symbolique qui part sur un emplacement réseau windows), j'ai indiqué un repertoire qui etait dans mon www ( /ged/test).

Et a partir de la j'ai aucun message d'erreur, il me créer les repertoire sous repertoire avec l'utilisateur www-data group www-data.

Quel est le problème au niveau de mon lien symbolique et de ses droit?

merci

guigui69