Posez votre question Signaler

Apache var/www modification de fichier.php

Lux Fero - Dernière réponse le 2 oct. 2010 à 01:31
Bonjour,
pourquoi est ce qu'on peut pas modifier les fichiers.php qui se trouvent dans la racine var/www sous ubuntu et comment peut on faire afin de les changer.
merci pour vos réponses.
Lire la suite 

Apache var/www modification de fichier.php »

17 réponses
Réponse
+1
moins plus
Parce que ton utilisateur n'a pas les droits en écriture sur ces fichiers. Regarde les droits associés à /var/www :

ls -l /var/www


A priori je pense que le propriétaire est root et le groupe www-data (reporte-moi le résultat de cette commande) et que les deux ont les droits en écriture sur ce répertoire. Il suffit d'ajouter ton utilisateur à ce groupe pour corriger le problème.

Plus de détails ici :
http://forum.ubuntu-fr.org/viewtopic.php?id=113562

Bonne chance
Ajouter un commentaire
Réponse
+1
moins plus
Salut,

Tu ne peux pas modifier les fichier dans /var/www car à la base tu n'est pas le propriétaire du dossier.

Pour plus d'informations tu peux regarder cette page.

Pour ce qui est de te permettre de modifier les fichier je dirais qu'avec la commande chown ça devrait fonctionner. Donc :
chown -R  user:user /var/www


Si une fois cette commande lancer et exécuté avec succès ça ne fonctionne pas.
Essai :
chown -R  user:user /var/www/*


@++ :- )

Edit : Je ne tapes pas assez vite ,, shifted by mamiemando ;-P
lami20j- 29 sept. 2010 à 11:51
Salut,

A la limite pourquoi pas utiliser un editeur de texte avec la commande sudo?

sudo gedit /var/www/fichier.php&
boisdulait- 29 sept. 2010 à 11:54
c'est pas faux ... juste que je m'aime pas ouvrir un editeur en root ... mais oui tu as raison aussi..

En fait, nos 3 solutions sont nettement meilleures que celle suggérée par just1602 (désolé hein, rien de méchant)
Lux Fero - 29 sept. 2010 à 18:56
je vous remercie les amis:
mais chown marche pas à tout les coups je pense voilà ce qu'il me donne:

login@login:~$ chown -R login /var/www 
chown: changement de propriétaire pour '/var/www/phpinfo.php~': Opération non permise 
chown: changement de propriétaire pour '/var/www/phpmyadmin': Opération non permise 
chown: changement de propriétaire pour '/var/www/index.html': Opération non permise


aussi daccord pour le gedit mais je pense qu'il s'agit plus des droits d'access!

quand à mamiemando voila les droits d'accés sur var/www (j'ai seulement ceux du fichier "phpinfo.php" comme vous pouvez le constater il est a moi.

ls -l /var/www 
total 12 
-rw-r--r-- 1 root    root    45 2010-06-29 22:29 index.html 
-rw-r--r-- 1 login root    96 2010-09-29 16:27 phpinfo.php 
-rw-r--r-- 1 login login 96 2010-09-29 16:27 phpinfo.php~ 
lrwxrwxrwx 1 root    root    21 2010-06-29 22:38 phpmyadmin -> /usr/share/phpmyadmin


je me suis ajouter au groupe www-data:

sudo adduser login www-data


et changer les droits du racine var/www:

chmod g+w /var/www


et maintenant je peux créer et modifer les fichiers qui se trouvent dans var/www
à l'exception du index.php et phpmyadmin dans la même racine.
Ajouter un commentaire
Réponse
+0
moins plus
Bon stop je vois trop de trucs qui me piquent les yeux :)

Pour commencer pour lancer un éditeur texte graphique avec des droits root, il faut éviter sudo et préférer gksudo, cf les explications ici :
http://doc.ubuntu-fr.org/sudo#quand_doit-on_utiliser_sudogksudokdesudo

1) gksudo paramètre le dossier personnel (la variable d'environnement $HOME) pour l'application exécutée en mode privilégiée à /root plutôt qu'à /home/<identifiant> et copie le fichier .Xauthority dans un dossier temporaire. Ceci empêche que des fichiers du dossier personnel de l'utilisateur changent de propriétaire (et donc corrompent la session graphique en cours).


Pour le lien symbolique pourquoi pas a priori dans le cas particulier d'apache ça marche peut être, mais pas dans celui d'un serveur "jailé" comme par exemple proftpd. Le lien symbolique ferait remonter depuis /var/www via ../../home/mando/site (ou directement /home/mando/site ce qui revient de toute façon au même) et force à "sortir" de /var/www. Dans un serveur jailé ce ne serait pas possible.

Je pense que ce n'est d'ailleurs pas systématiquement possible en apache si on autorise pas le suivi des liens symbolique.

Seule solution, utiliser des "mount bind" :
http://www.commentcamarche.net/...

Ensuite il n'y a pas vraiment de raison de stocker le site dans un home à part dans un contexte "mono utilisateur" et encore. Tous les "documents" attachés à une application n'appartiennent pas spécialement à un utilisateur et c'est pourquoi le "home" de ces applications est bien dans /var/lib ou /var/www (cf apache, mysql, munin et bien d'autres).

Imaginons par exemple que l'utilisateur mando héberge les "pages" en question et qu'il décide brusquement de restreindre l'accès à son home. Et bien c'est dommage mais là avec lien symbolique on sera coincé (pas avec un mount bind qui est exécuté par root) mais conceptuellement ce dossier n'a rien à faire dans son home. Je rappelle au passage qu'un utilisateur peut dégager de son home un fichier qui ne lui appartient pas même s'il n'a pas les droits dessus (ben oui.. c'est son home :p).

Preuve :

(mando@aldur) (~) $ su -
Mot de passe : 
(root@aldur) (~) # touch /home/mando/pouet.txt
(root@aldur) (~) # logout
(mando@aldur) (~) $ ls -l /home/mando/pouet.txt
-rw-r--r-- 1 root root 0  1 oct.  11:03 /home/mando/pouet.txt
(mando@aldur) (~) $ rm /home/mando/pouet.txt
rm : supprimer fichier vide (protégé en écriture) « /home/mando/pouet.txt » ? y
(mando@aldur) (~) $ ls -l /home/mando/pouet.txt
ls: impossible d'accéder à /home/mando/pouet.txt: Aucun fichier ou dossier de ce type


Bref... laissons les pages à leur place et mettons simplement mando... dans www-data... comme c'est prévu à la base.

Bonne chance
mamiemando- 1 oct. 2010 à 15:44
En fait ce long débat pour dire qu'en toute rigueur il suffit d'ajouter les développeurs dans le groupes www-data qui sont sensés avoir les droits en écriture sur les pages hébergées dans /var/www et le problème est réglé "proprement" qu'on soit chez soi ou dans un contexte plus rigoureux.

Pour des gestions plus fines sur qui peut modifier quelles pages (donc toujours dans un contexte muti-utilisateur), il faudrait sans doute avoir recours à des droits ACL (voir setfacl et getfacl).
just1602- 2 oct. 2010 à 01:16
Ahh bien merci pour toutes ces informations !! J'ai appris des choses qui me seront très utile ^^

@++ :- )
mamiemando- 2 oct. 2010 à 01:31
C'était le but :-) Est-ce que ton problème est résolu ?
Ajouter un commentaire
Ce document intitulé « apache var/www modification de fichier.php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?