Apache var/www modification de fichier.php

Fermé
Lux Fero - 28 sept. 2010 à 23:30
mamiemando Messages postés 33378 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 novembre 2024 - 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.

A voir également:

3 réponses

mamiemando Messages postés 33378 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 novembre 2024 7 802
29 sept. 2010 à 00:32
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
1
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
1
mamiemando Messages postés 33378 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 novembre 2024 7 802
29 sept. 2010 à 00:44
Ben ce qui me gêne c'est que là c'est un chown qui ne me paraît pas très jusitifé. Tous les utilisateurs qui doivent pouvoir modifier ces pages doivent simplement être membre de www-data. Même si ta solution marche, les droits que tu définis ne sont pas super.
0
Utilisateur anonyme
29 sept. 2010 à 11:36
+1 avec mamiemando...

On ne change pas les droit/propriétaire de /var/www/ ...

Au mieux, on crée un dossier dans ~/user/nom_du_dossier

On fait un : ln -s ~/user/nom_du_dossier /var/www/
On déplace le contenu de /var/www/ dans ~/user/nom_du_dossier

Ce qui permettra à l'utilisateur de pouvoir modifier les fichiers, les afficher dans le serveur WEB et ce sans avoir eu à retoucher au proprio/droit de /var/www
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
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&
0
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)
0
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.
0
mamiemando Messages postés 33378 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 novembre 2024 7 802
1 oct. 2010 à 11:02
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" :
https://forums.commentcamarche.net/forum/affich-1906184-lien-symbolique-intilisable-en-ftp

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
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
Modifié par lami20j le 1/10/2010 à 12:28
Salut,

Bon stop je vois trop de trucs qui me piquent les yeux :)
Ca me pique aussi ;-)))

Ceci empêche que des fichiers du dossier personnel de l'utilisateur changent de propriétaire (et donc corrompent la session graphique en cours).
Il reste à montrer un exemple ou l'edition d'un fichier texte sudo change le propriétaire du fichier puisque je n'ai pas encore vu ça.

Je vois ça sur ton lien
"Utiliser sudo pour exécuter des applications en mode graphique peut causer des problèmes dans votre session utilisateur courante, vous empêchant de poursuivre votre travail.1) "

Ben, depuis toujours j'ai utilisé sudo et je n'ai jamais eu des problèmes concernant la poursuite de mon travail ;-)
Je ne contredis pas, mais je n'aime pas des affirmation lancées comme ça sans donner quelques exempler pour soutenir l'afirmation.

L'application gksudo sers à ouvrir les applications graphiques depuis le menu avec Jerry ;-) (à ajouter dans gconf si ce n'est pas le cas, par exemple pour un autre utiilsateur vu que pour le 1er c'est ok), mais si on utilise le terminal, franchement j'ai besoin d'un peu plus pour être convaincu ;-)
0
[...]Ensuite il n'y a pas vraiment de raison de stocker le site dans un home à part dans un contexte "mono utilisateur" et encore[..]

Dans une perspective de serveur en prod soit.. en tant que monoutilisateur perso je vois pleins d'avantages.

Poste desktop : je ne sépare pas /var > /home a beaucoup plus d'espace (je ne sais pas combien je vais avoir de projets en cours)
Il est plus évident de penser à backuper /home que /var

Pour un serveur web/php local, un lien symbolique est plus rapide qu'un bind.. mais attention, je ne dis pas que j'ai raison :) j'expose juste un point de vue
0
mamiemando Messages postés 33378 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 novembre 2024 7 802
1 oct. 2010 à 15:14
C'est juste une remarque pour faire prendre les habitudes, après le monde de Linux étant un monde libre, chacun fait comme il l'entend ;-)

Par rapport au partitionnement c'est justement pour ça que /var n'est pas forcément sur la même partition que / et ce serait clairement plus indiqué pour un serveur web ou de base de données. Idem pour /tmp. Note que des solutions comme lvm sont typiquement là pour répondre aux problématiques de partitionnement.
0
il est sous ubuntu, et il y a fort à parier que tout soit foutu sous / (là je prend le risque de me tromper)... et s'il en vient à formater (comme beaucoup sous ubuntu), seul son /home lui sera proposé à récupérer... tout le reste sera fusillé.

Bon j'arrête mon hors-sujet dsl
0
mamiemando Messages postés 33378 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 novembre 2024 7 802
Modifié par mamiemando le 1/10/2010 à 15:31
Non non la discussion est intéressante, boisdulait :
- Elle montre clairement que les étapes de partitionnement sont loin d'être anodine.
- Elle montre également les problématique lvm ou de bind qu'on pourrait avoir dans un contexte "professionel" ou pour d'autres serveurs (ftp...)
- Cette discussion montre aussi la prudence qu'on doit avoir vis-à-vis des liens symboliques et sur comment "jailer" un client dans une sous partie de l'arborescence Linux.
- Enfin c'est aussi l'occasion de montrer pourquoi les pages apaches sont dans /var et de réviser tout ce qui se rapporte à la FHS (File Hierachy Standard).

Je tiens d'ailleurs à en profiter pour m'excuser si certaines personnes ont été froissées par "ça pique les yeux", je n'ai pas voulu être vexante auprès de qui que ce soit.

Et effectivement il y a des chances que /var soit dans / s'il a choisi une installation par défaut.

C'est d'ailleurs une raison pour laquelle j'installe souvent / et /home dans une même partition quand je ne peux pas/veux pas faire de lvm, même si cela complique une réinstallation de linux (dieu merci... ça n'arrive jamais car c'est un système fiable... quand on sait l'utiliser :p) et un fsck plus long tous les 30 reboots.

Bref, beaucoup de choix dépendent des personnes et du besoin : la distribution, les paquets, les choix tecnhiques et la manière dont on les administre. Je trouve que ces quelques messages permettent de mettre en évidence et les inconvénients de chaque approche et forment ainsi un "hors sujet" plutôt intéressant.
0