Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 05/01/2014, à 12:08

7h47

Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Bonjour,

Ce post n'est pas une question mais un retour d'expérience, qui j'espère en aidera certains.

Je précise mon besoin :
Avoir simplement un serveur de développement sur mon PC.
Donc modifier le documentRoot pour qu'il "tombe" dans mon répertoire personnel (ici : /home/sebastien/Travail/www)
Ma config : Ubuntu 13.10 et Apache 2.4 (et bien sûr les classiques php, mysql,....)

Voici les étapes que j'ai suivi :

Sources de départ :
http://doc.ubuntu-fr.org/tutoriel/lamp_ … de_travail
http://forum.ubuntu-fr.org/viewtopic.php?id=1361301

Je pars d'une install lamp vierge :

User : sebastien
Répertoire de travail choisi : /home/sebastien/Travail/www
(Ces 2 points sont donc à modifier en fonction de vos paramètres)

1 - Création des répertoires :
(Faire ça  dans le terminal, je l'ai fait au depart dans le gestionnaire de fichier ce qui a occasionné des problème de droits.)
sudo mkdir /home/sebastien/Travail
sudo mkdir /home/sebastien/Travail/www

2 - Droits sur les répertoires :
sudo chown -R $USER:users /home/sebastien/Travail
>> l'option -R permet d'ajouter récursivement les mêmes droits à tous tes fichiers et rép.
sudo chmod -R 755 /home/sebastien/Travail

3 - Configuration apache :
Je copie le fichier 000-defaut.conf de sites-available vers sites-enabled.
sudo cp /etc/apache2/sites-available/000-defaut.conf /etc/apache2/sites-enabled/

Je modifie le fichier 000-defaut.conf situé dans sites-enabled
sudo gedit etc/apache2/sites-enabled/000-defaut.conf

Voici mon fichier :

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /home/sebastien/Travail/www

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf

         # New directive needed in Apache 2.4.3: 
          <Directory /home/sebastien/Travail/www>
	   Options Indexes FollowSymLinks MultiViews
           AllowOverride all
	   Order allow,deny
	   Allow from all
	   # New directive needed in Apache 2.4.3: 
	   Require all granted
	</Directory>
</VirtualHost>

4 - Résultat
Je recharge apache
sudo /etc/init.d/apache2 reload

Je teste http://localhost/

Résultat
>> Forbidden You don't have permission to access / on this server. >> C'est normal

Je regarde les logs >> /var/log/apache2/error.log
(13)Permission denied: [client 127.0.0.1:43058] AH00035: access to / denied (filesystem path '/home/sebastien/Travail') because search permissions are missing on a component of the path

5 - Qu'est ce qui se passe ?

Je regarde les droits sur mes répertoires :
namei -m /home/sebastien/Travail/www

f: /home/sebastien/Travail/www
drwxr-xr-x /
drwxr-xr-x home
drwx------ sebastien
drwxr-xr-x Travail
drwxr-xr-x www

Je fais :
sudo chmod go+rx /home/sebastien (je veux bien votre retour sur cette commande, est-ce que c'est "propre" de faire ça ?)

>> Génial ça fonctionne !

Surtout n’hésitez pas à me faire vos remarques.

Seb

Dernière modification par 7h47 (Le 05/01/2014, à 12:09)

Hors ligne

#2 Le 05/01/2014, à 12:29

Anonyme68

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Bonjour,

joli tuto, j'ai quelques remarques :

Je copie le fichier 000-defaut.conf de sites-available vers sites-enabled.
sudo cp /etc/apache2/sites-available/000-defaut.conf /etc/apache2/sites-enabled/

il me semble que le dossier sites-enabled contient déjà un fichier default et que du coup dans ton cas il y en aura 2, ce qui ne fait pas très propre, surtout sans le ServerName configuré.

Apache utilise comme www-data comme nom d'utilisateur, ce qui explique tes erreurs de droits juste après.

sudo chown -R $USER:users /home/sebastien/Travail --> sudo chown -R www-data:users /home/sebastien/Travail

sudo chmod go+rx /home/sebastien (je veux bien votre retour sur cette commande, est-ce que c'est "propre" de faire ça ?) --> cela donne le droit d’exécution à tout le monde sur tout les fichiers, ce qui me semble une aberration.

Je vous conseille un peu de lecture : http://fr.openclassrooms.com/informatiq … les-droits

donc pour réglé les problème de droits j'utiliserais plutôt quelques chose comme : chmod 664 (droit lecture/écriture propriétaire et groupe droit de lecture autre)

Cordialement


Visiter mon site internet entièrement hébergé sur un serveur Ubuntu !
Mon profil Steam Bitcoins gratuit !

Hors ligne

#3 Le 05/01/2014, à 12:31

J5012

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

avoir des droits 755 sur des dossiers appartenant a des users id >= 1000 n'est pas absolument necessaire, le serveur httpd a toujours un id inferieur donc des droits d'acces superieurs ...

ajouter des droits supplementaires, non necessaires, a, comme tu as pu le constater, modifier l'ordre et la priorite des droits ...

ce topic est une parfaite illustration de la doc et des tuto deja presents dans la doc ubuntu-fr, et une mecomprehension de celle-ci : tu peux chercher sur le forum, le nombre d'occurences pour virtualhost ou lamp ou apache !

Hors ligne

#4 Le 05/01/2014, à 12:56

7h47

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Merci Anoyme68, je vais regarder ça en détail.
J5012 oui le nombre d’occurrences sur ce sujet est énorme, mais aucun ne répond simplement et en une seule fois à mon besoin, des brides d'informations içi et là très difficile à démêler.
Donc oui une mécomprehension du sujet, d’où mon retour d'expérience et donc l'attente de réponse pour progresser et avancer.....tiens cela ne serait pas le but d'un forum  ???

Hors ligne

#5 Le 05/01/2014, à 13:00

bruno

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Anonyme68 a écrit :

Je copie le fichier 000-defaut.conf de sites-available vers sites-enabled.
sudo cp /etc/apache2/sites-available/000-defaut.conf /etc/apache2/sites-enabled/

il me semble que le dossier sites-enabled contient déjà un fichier default et que du coup dans ton cas il y en aura 2, ce qui ne fait pas très propre, surtout sans le ServerName configuré.

Effectivement, on active un hôte virtuel avec la commande :

sudo a2ensite monhote.conf

ce qui va créer un lien symbolique de /etc/apache2/sites-available/monhote.conf vers /etc/apache2/sites-enabled/monhote.conf


Apache utilise comme www-data comme nom d'utilisateur, ce qui explique tes erreurs de droits juste après.

sudo chown -R $USER:users /home/sebastien/Travail --> sudo chown -R www-data:users /home/sebastien/Travail

Les fichiers appartiendront alors à www-data et l'utilisateur sebastien ne pourra plus les modifier, à moins qu'il ne soit membre du groupe users et que le groupe ait les droits d'écriture. Ce qui n'est pas le but recherché pour un serveur de développement.
Il serait préférable que les dossiers et fichiers appartiennent à sebastien et au groupe www-data


sudo chmod go+rx /home/sebastien (je veux bien votre retour sur cette commande, est-ce que c'est "propre" de faire ça ?) --> cela donne le droit d’exécution à tout le monde sur tout les fichiers, ce qui me semble une aberration.

Non ! Il n'y a pas d'option -R sur cette commande cela donne donc simplement un droit d'accès à tous le monde au dossier /home/sebastien

@J5012 : je n'ai pas compris ta remarque sur les id et les droits d'accès. Est-ce que tu peux préciser ?

Hors ligne

#6 Le 05/01/2014, à 13:02

J5012

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

oui mais non si c'est une repete de la doc et des tutos ... si tu avais fourni une astuce n'etant ni dans les docs ni dans les tutos ? mais non ...

et la plupart de ceux qui posent des questions sur ce forum pour monter un serveur comme tu as su le faire ,  posent toujours immanquablement les memes questions ... dont les reponses sont dans les docs et tutos ... donc en effet tres gros probleme de notions et de comprehension ...

Hors ligne

#7 Le 05/01/2014, à 13:25

7h47

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Super merci @Bruno.
Pour :

sudo a2ensite monhote.conf

Comme dans mon cas j'ai juste besoin de localhost est ce que la commande suivante fonctionne ?

sudo a2ensite localhost.conf 

Comme dans la conf apache j'ai <VirtualHost *:80> je pensais que ce poserais problème ? (mettre à la place <VirtualHost localhost:80> ? )

Hors ligne

#8 Le 05/01/2014, à 14:05

J5012

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

les droits d'acces sont hierarchises en groupe d'acces et en profils d'utiisateurs (je simplifie)
ce que tu as fait avec la commande chmod est de trancher a la hache dedans ! et pour un objectif qui etait deja operationnel !

quand le systeme cree un user admin (un user qui a le droit d'executer sudo) comme ton user dans ubuntu (mecanisme different dans debian) lors de l'install, il lui assigne un groupe du meme nom et du meme id : si ton compte est pierre, son groupe est pierre d'id=1000, l'utilisateur suivant sera d'id=1001, etc ...

les id inferieurs a 1000 sont tous des id avec des droits superieurs aux tiens , dont root qui est d'id=0, www-data id=33 , mysql id=129 ....

les groupes et les profils avec des id inferieurs ayant des droits superieurs "englobent" fonctionnellement tes acces, c'est pourquoi tu n'as pas de processus linux qui te demandent a chaque fois la permission d'acces a tes fichiers ou dossiers quand tu demandes au systeme d'effectuer des modifications (creation, suppression ...)

par contre si tu veux realiser des acces sur des ressources avec des id inferieurs aux tiens, par ex. scanner ou graver, tu dois en avoir les droits, et c'est la ou la hierarchisation intervient : il suffit en effet d'inclure ton user id=1000 dans le groupe scanner id=106 ou cdrom id=24 ...

neanmoins avec la configuration particuliere sudo dans ubuntu, bcp d'acces sont debloques pour l'user id=1000

en ce qui concerne le reglage d'un serveur web, par construction, les droits d'acces cote serveur/appliweb (comme avec un htaccess par ex) n'ont rien a voir avec les droits d'acces physiques aux dossiers ou se trouvent les fichiers de l'appliweb ... on appelle ca le cloisonnement des services.

ce cloisonnement existe pour tous services vis-a-vis des acces aux ressources de l'utilisateur :
- droits samba
- droits mysql
- droits dns
- droits sendmail etc ...

par ex pour le cas du serveur web :
- tu peux avoir un 644 pour les acces user normal en local sur les ressources physiques
- et avoir un 755 du point de vue ftp ou http sur des dossiers fonctionnels de l'appliweb

l'outil chmod est utile dans un environnement gnulinux degrade ou pour des configurations precises (cad que l'admin comprend le pourquoi du comment) ...

Hors ligne

#9 Le 05/01/2014, à 14:16

J5012

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

7h47 a écrit :

Super merci @Bruno.
Pour :

sudo a2ensite monhote.conf

Comme dans mon cas j'ai juste besoin de localhost est ce que la commande suivante fonctionne ?

sudo a2ensite localhost.conf 

Comme dans la conf apache j'ai <VirtualHost *:80> je pensais que ce poserais problème ? (mettre à la place <VirtualHost localhost:80> ? )

monhote.conf c'est tintin ou carotte ! rien a voir avec "monhote" comme variable hote !

la commande "sudo a2ensite localhost.conf" n'activera pas localhost ... il activera ce qu'il y a d'indique dedans !

la directive <virtualhost *:80> signifie tous les noms d'hotes et pas seulement localhost :
- http://wpress t'affichera l'appli wpress se trouvant dans le dossier contenant les fichiers html/php/xml/js/etc de wpress

tu devrais vraiment la lire cette doc ...

Hors ligne

#10 Le 05/01/2014, à 15:41

bruno

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

J5012 a écrit :

les id inferieurs a 1000 sont tous des id avec des droits superieurs aux tiens , dont root qui est d'id=0, www-data id=33 , mysql id=129 ....

les groupes et les profils avec des id inferieurs ayant des droits superieurs "englobent" fonctionnellement tes acces, c'est pourquoi tu n'as pas de processus linux qui te demandent a chaque fois la permission d'acces a tes fichiers ou dossiers quand tu demandes au systeme d'effectuer des modifications (creation, suppression ...)

J'ai rien compris… Tu as une doc de référence pour ce que tu avances ?
Dans l'exemple donné le dossier /home/sebastien n'a de droit d'accès que pour le propriétaire sebastien ce qui empêche tout autre utilisateur d'y accéder (sauf root qui a tout les droist) y compris lers utilisateurs système comme www-data. D'ailleurs Apache génère bien une erreur 403 dans ce cas.

Hors ligne

#11 Le 05/01/2014, à 16:01

Anonyme68

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

bruno a écrit :

J'ai rien compris… Tu as une doc de référence pour ce que tu avances ?

cela m’intéresse aussi.


Visiter mon site internet entièrement hébergé sur un serveur Ubuntu !
Mon profil Steam Bitcoins gratuit !

Hors ligne

#12 Le 05/01/2014, à 21:22

J5012

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

bruno a écrit :
J5012 a écrit :

les id inferieurs a 1000 sont tous des id avec des droits superieurs aux tiens , dont root qui est d'id=0, www-data id=33 , mysql id=129 ....

les groupes et les profils avec des id inferieurs ayant des droits superieurs "englobent" fonctionnellement tes acces, c'est pourquoi tu n'as pas de processus linux qui te demandent a chaque fois la permission d'acces a tes fichiers ou dossiers quand tu demandes au systeme d'effectuer des modifications (creation, suppression ...)

J'ai rien compris… Tu as une doc de référence pour ce que tu avances ?
Dans l'exemple donné le dossier /home/sebastien n'a de droit d'accès que pour le propriétaire sebastien ce qui empêche tout autre utilisateur d'y accéder (sauf root qui a tout les droist) y compris lers utilisateurs système comme www-data. D'ailleurs Apache génère bien une erreur 403 dans ce cas.

ce que j'explique ne sera dans aucun livre actuellement disponible (neanmoins tu peux trouver de vieilles editions qui l'expliquent en long et large) ... malheureusement !

si tu lis un bon livre d'administration unix/linux, on te jettera a la figure des notions ardues sur la creation gestion des groupes et l'emploi syntaxe des commandes shell ...

pour l'interdiction 403, il suffit comme je l'ai dit au dessus d'utiliser la hierachisation des droits plutot que de trancher avec ta super hache chmod : tu ajoutes ton user au groupe www-data ...

http://doc.ubuntu-fr.org/tutoriel/virtu … ec_apache2
http://doc.ubuntu-fr.org/apache2
http://doc.ubuntu-fr.org/nginx

outil de configuration des groupes : http://doc.ubuntu-fr.org/users-admin

Hors ligne

#13 Le 05/01/2014, à 22:57

bruno

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

J5012 a écrit :
bruno a écrit :
J5012 a écrit :

les id inferieurs a 1000 sont tous des id avec des droits superieurs aux tiens , dont root qui est d'id=0, www-data id=33 , mysql id=129 ....

les groupes et les profils avec des id inferieurs ayant des droits superieurs "englobent" fonctionnellement tes acces, c'est pourquoi tu n'as pas de processus linux qui te demandent a chaque fois la permission d'acces a tes fichiers ou dossiers quand tu demandes au systeme d'effectuer des modifications (creation, suppression ...)

J'ai rien compris… Tu as une doc de référence pour ce que tu avances ?
Dans l'exemple donné le dossier /home/sebastien n'a de droit d'accès que pour le propriétaire sebastien ce qui empêche tout autre utilisateur d'y accéder (sauf root qui a tout les droist) y compris lers utilisateurs système comme www-data. D'ailleurs Apache génère bien une erreur 403 dans ce cas.

ce que j'explique ne sera dans aucun livre actuellement disponible (neanmoins tu peux trouver de vieilles editions qui l'expliquent en long et large) ... malheureusement !

ben, voyons…


si tu lis un bon livre d'administration unix/linux, on te jettera a la figure des notions ardues sur la creation gestion des groupes et l'emploi syntaxe des commandes shell ...

La gestion des utilisateurs et des groupes n'a rien d'ardu, pas plus que la ligne de commande… quand on veut administrer un serveur.


pour l'interdiction 403, il suffit comme je l'ai dit au dessus d'utiliser la hierachisation des droits plutot que de trancher avec ta super hache chmod : tu ajoutes ton user au groupe www-data ...

Cela ne marchera pas et cela prouve que tu ne comprends rien à la gestion des utilisateurs et des groupes et aux droits d'accès.

Hors ligne

#14 Le 06/01/2014, à 12:19

J5012

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

et si ca marche ... il faut bien sur tout configurer soi-meme, et ne pas prendre pour acquis les fichiers fournis deja configures ...

pour les vieilles editions c'est vrai ... car la tendance actuelle nous prend pour des idiots retardes mentaux ...

tu peux prendre n'importe quelle doc decrivant la gestion des utilisateurs : il n'y en a pas une qui decrive et explique sans parler des outils et comment s'en servir ... comme si la comprehension des notions basiques passait obligatoirement par l'outillage ... c'est comme si pour t'expliquer le traitement de textes je t'expliquais l'utilisation de microsoft word !

Hors ligne

#15 Le 06/01/2014, à 19:11

bruno

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Bon je n'insisterai pas davantage mais :

- on a dossier qui à les droits en entrée, lecture, écriture pour son propriétaire sebastien et aucun droits pour le groupe et le reste du monde, soit

drwx------

cela signifie que seul l'utilisateur sebastien peut voir le contenu de ce dossier à l'exclusion de tous les autres sauf root.

Tu peux mettre sebastien dans tous les groupes du système cela n'y changera strictement rien.
Si tu mets sebastien dans le groupe www-data cela lui permettra d’accéder aux ressources qui appartiennent au groupe www-data et sûrement pas l'inverse.

Bref, encore une fois tu ne comprends rien à le gestion des utilisateurs et des droits et tu te permets de venir donner des conseils. sad

Hors ligne

#16 Le 06/01/2014, à 19:59

compte supprimé x0

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

7h47 a écrit :

Merci Anoyme68, je vais regarder ça en détail.
J5012 oui le nombre d’occurrences sur ce sujet est énorme, mais aucun ne répond simplement et en une seule fois à mon besoin, des brides d'informations içi et là très difficile à démêler.
Donc oui une mécomprehension du sujet, d’où mon retour d'expérience et donc l'attente de réponse pour progresser et avancer.....tiens cela ne serait pas le but d'un forum  ???

Aucune ?
Ce n'est pas tout-à-fait vrai : http://forum.ubuntu-fr.org/viewtopic.ph … #p15281851

#17 Le 06/01/2014, à 20:05

compte supprimé x0

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

J5012 a écrit :

(mecanisme different dans debian)

Pas nécessairement ! C'est un choix proposé à l'install...
C'était juste une remarque...

J5012 a écrit :

tu ajoutes ton user au groupe www-data ...

Jamais fait ça... Ni changé la moindre permission... Et ça fonctionne parfaitement. Voir le lien dans mon précédent post...

D'ailleurs c'est logique ! Qui peut créer un virtual host ? Seulement l'admin, qui a accès à tout, de toutes façons ! Or le virtual host indique juste (raccourci) à apache où il doit chercher les données qui correspondent au site demandé. Or si seul l'admin peut le lui dire, via le virtual host, il n'y a aucune raison qu'apache n'y accède pas... Ce n'est pas l'utilisateur qui doit accéder aux données, mais apache ! Donc pour ça, on s'en fout de l'utilisateur et de ses permissions...

Dernière modification par Dr. Hugo Z. Hackenbush (Le 06/01/2014, à 20:32)

#18 Le 06/01/2014, à 20:57

J5012

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

bruno a écrit :

Bon je n'insisterai pas davantage mais :

- on a dossier qui à les droits en entrée, lecture, écriture pour son propriétaire sebastien et aucun droits pour le groupe et le reste du monde, soit

drwx------

cela signifie que seul l'utilisateur sebastien peut voir le contenu de ce dossier à l'exclusion de tous les autres sauf root.

Tu peux mettre sebastien dans tous les groupes du système cela n'y changera strictement rien.
Si tu mets sebastien dans le groupe www-data cela lui permettra d’accéder aux ressources qui appartiennent au groupe www-data et sûrement pas l'inverse.

Bref, encore une fois tu ne comprends rien à le gestion des utilisateurs et des droits et tu te permets de venir donner des conseils. sad

tu aurais raison , sauf que par defaut sans modification dans ubuntu, ce que tu enregistres dans user par user prend les droits de user, les autres ont acces aux fichiers en lecture ...

si l'utilisateur "sebastien" s'est retrouve avec aucun acces pour les "autres", c'est a cause de chmod ...

@hugo : oui dans certaines install de paquets, il est pris en compte l'inscription au groupe www-data (tu n'as aucune manip a faire), et dans certaines versions d'ubuntu, le fait d'avoir les acces sudo debloque aussi automatiquement certains droits aux ressources (scanner, graver, usb, samba-share, etc)

Hors ligne

#19 Le 06/01/2014, à 21:03

J5012

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

le but du forum est certainement de venir en aide aux utilisateurs , mais cela devient problematique quand les memes questions et les memes problemes reviennent sans cesse ... en debut du forum dans les prerequis aux usages, il est dit de se referer a la doc, et aussi de chercher dans le forum, avant d'ouvrir un sujet ...

soit les usagers ne cherchent ni dans la doc ni dans le forum, soit ils ne comprennent pas les reponses donnees ...

que ce soit l'une ou l'autre , ca reste problematique ...

Hors ligne

#20 Le 06/01/2014, à 22:28

compte supprimé x0

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

J5012 a écrit :

@hugo : oui dans certaines install de paquets, il est pris en compte l'inscription au groupe www-data (tu n'as aucune manip a faire), et dans certaines versions d'ubuntu, le fait d'avoir les acces sudo debloque aussi automatiquement certains droits aux ressources (scanner, graver, usb, samba-share, etc)

Je ne suis pas dans le groupe www-data... Je viens de vérifier (dans debian il n'existe même pas !). Et pourtant ça fonctionne, aussi bien dans debian kde que dans kubuntu ! Et encore une fois, je n'ai modifié aucune permission. Tout se passe dans le virtual host et sa validation par le lien symbolique dans /etc/apache2/sites-enabled (ou par sa présence directe dans le même répertoire, une mauvaise idée)

~$ groups 
hackenbush cdrom floppy sudo audio dip video plugdev scanner netdev
~$ sudo groups
root

scanner, graver, usb, samba-share, etc ce n'est pas le même problème : l'admin donne ici des droits à un utilisateur physique, si j'ose dire. Untel a le droit d'utiliser le lecteur de cd, un autre pas.

Mais dans le cas d'apache, c'est différent : l'admin ne donne pas le droit à un utilisateur de fabriquer un site, mais il indique seulement à apache comment y accéder ou pas, en validant, ou pas, un virtual host (le lien dans /etc/apache2/sites-enabled). L'utilisateur n'a pas besoin d'être dans le groupe www-data pour ça ! Ce n'est pas lui qui accède au site, mais n'importe qui de susceptible de se connecter à la machine en y envoyant des requêtes http. Dont localhost, qui n'est pas non plus l'utilisateur, puisqu'il celui-ci passe par son navigateur pour taper localhost, comme il taperait n'importe quel autre adresse. Sauf que dans /etc/hosts (encore du ressort de l'admin) se trouve la liste de ce qu'il faut envoyer directement à apache (dont 127.0.0.1 = localhost) et non pas à internet...

Et l'USER n'a pas besoin non plus d'être dans www-data pour modifier ses propres fichiers (ceux du site qu'il a concocté) à conditions qu'ils soient chez lui, avec les permissions standards de USER.

Edit : USER peut empêcher apache d'accéder à ses fichiers. Il suffit qu'il les interdise en lecture à "autres"... Mais apache ne revoie dans ce cas qu'une feuille blanche, sans message genre forbidden... Pour lui, ce n'est pas interdit, il n'arrive pas le lire, c'est tout !

Dernière modification par Dr. Hugo Z. Hackenbush (Le 06/01/2014, à 22:51)

#21 Le 07/01/2014, à 09:08

J5012

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

je n'y suis pas non plus dans le groupe www-data !

L'utilisateur n'a pas besoin d'être dans le groupe www-data pour ça

tout a fait juste puisque c'est le service upstart qui lance apache2

je n'ai pas dit que l'appartenance a www-data etait une obligation operationnelle et fonctionnelle, juste qu'elle etait parametree telle quelle dans certaines versions d'ubuntu et pour certaine appliweb installees par paquets ...

c'est l'utilisateur "sebastien" qui en utilisant la hache chmod a cree son propre probleme, je lui avais alors suggere d'utiliser la hierarchisation des droits ...

Hors ligne

#22 Le 07/01/2014, à 13:01

Anonyme68

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Dr. Hugo Z. Hackenbush  a écrit :

Edit : USER peut empêcher apache d'accéder à ses fichiers. Il suffit qu'il les interdise en lecture à "autres"...

Sur mon serveur, j'ai mis chown 600 avec comme proprio www-data et ça fonctionne comme un charme. (je ne modifie pas les fichiers avec mon user vu que tout est geré par mon CMS). Je pense par conséquent que les droits sur autres n'ont aucune importance.

Dr. Hugo Z. Hackenbush  a écrit :

Sauf que dans /etc/hosts (encore du ressort de l'admin) se trouve la liste de ce qu'il faut envoyer directement à apache (dont 127.0.0.1 = localhost) et non pas à internet...

Voir : hosts. A mon avis tu t'emmêle les pédales. Le fichier est utilisé par ton naviguateur internet et non pas par apache. Je testerai dès que j'ai le temps, mais probablement sans "localhost" dans le fichier, apache fonctionne correctement. (sauf si tu utilises http://localhost pour te connecter à ton site à partir de ton naviguateur internet OFC)

J5012 a écrit :

tout a fait juste puisque c'est le service upstart qui lance apache2

C'est alors étrange que apache2 est utilisé par www-data.

Exemple :

http://stackoverflow.com/questions/5012 … e-and-proc
http://serverfault.com/questions/269674 … e-ram-here

J5012 a écrit :

c'est l'utilisateur "sebastien" qui en utilisant la hache chmod a cree son propre probleme, je lui avais alors suggere d'utiliser la hierarchisation des droits ...

Je pense que le problème vient plutôt de toi et tes soit disant connnaissances imaginaires.

Dernière modification par Anonyme68 (Le 07/01/2014, à 13:01)


Visiter mon site internet entièrement hébergé sur un serveur Ubuntu !
Mon profil Steam Bitcoins gratuit !

Hors ligne

#23 Le 07/01/2014, à 13:42

compte supprimé x0

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Anonyme68 a écrit :
Dr. Hugo Z. Hackenbush  a écrit :

Edit : USER peut empêcher apache d'accéder à ses fichiers. Il suffit qu'il les interdise en lecture à "autres"...

Sur mon serveur, j'ai mis chown 600 avec comme proprio www-data et ça fonctionne comme un charme. (je ne modifie pas les fichiers avec mon user vu que tout est geré par mon CMS). Je pense par conséquent que les droits sur autres n'ont aucune importance.

Mais moi je n'ai rien fait du tout ! J'ai laissé comme c'était ! Et pourtant ça fonctionne !
Je ne dis pas : on peut aussi tout modifier, créer des groupes, changer des tas de propriétaires, des tas de permissions et ça peut fonctionner aussi... Pour aller à New York on peut passer par Tombouctou, on y arrive...

Anonyme68 a écrit :
Dr. Hugo Z. Hackenbush  a écrit :

Sauf que dans /etc/hosts (encore du ressort de l'admin) se trouve la liste de ce qu'il faut envoyer directement à apache (dont 127.0.0.1 = localhost) et non pas à internet...

Voir : hosts. A mon avis tu t'emmêle les pédales. Le fichier est utilisé par ton naviguateur internet et non pas par apache. Je testerai dès que j'ai le temps, mais probablement sans "localhost" dans le fichier, apache fonctionne correctement. (sauf si tu utilises http://localhost pour te connecter à ton site à partir de ton naviguateur internet OFC)

Je n'ai jamais dit qu'il était utilisé par apache : la liste de ce qu'il faut envoyer directement à apache et non pas à internet...
Ensuite ça m'étonnerait que ce soit le navigateur qui fasse le routage (j'ai des doutes : ce fichier est consulté avant l'accès au serveur DNS dit la doc)...
J'ai un site qui s'appelle toto. Si je tapes toto dans la barre du navigateur, il m'affiche ça : https://www.google.com/search?q=toto&ie … annel=fflb
Si je mets 127.0.0.1 toto dans mon fichier /etc/hosts et que maintenant je tape toto dans mon navigateur, il m'affiche mon site ! Un simple routage, la requête a été envoyée à apache au lieu d'être envoyée sur le net ! Rien à voir avec apache...

Anonyme68 a écrit :
J5012 a écrit :

tout a fait juste puisque c'est le service upstart qui lance apache2

C'est alors étrange que apache2 est utilisé par www-data.

Il n'y a pas de www-data dans Debian, ni rien qui y ressemble. Et pourtant ça fonctionne !
T'expliques ça comment ?

Dernière modification par Dr. Hugo Z. Hackenbush (Le 07/01/2014, à 14:01)

#24 Le 07/01/2014, à 18:18

Anonyme68

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Voila je viens d'installer apache2 sur une debian toute fraîche dans une machine virtuelle.

Debian 3.2.46-1+deb7u1
Apache 2.2.22-13

ps aux |grep apache2

apache2 par défaut est exécuté par www-data.

Le groupe www-data existe bien.

Après avoir enlevé les droits à www-data au dossier /var/www (avec chmod 600, ça peut n'importe quel nombre temps que le dernier est 0)

w3m m'affiche Forbidden (et non une plage blanche comme j'ai pu le lire)

Donc je ne dirais pas ce que je pense de ce que tu racontes, mais tu t'en doutes. hein?

Je dirais rien sur l'histoire de lien dans le dossier /etc/apache2/, ni sur le fait qu'aucun CMS ne fonctionnera si www-data n'a que accès en lecture, je pense que tu as compris le principe.

Bref tu comprends pas mieux le sujet que celui qui a ouvert le topic. Moi j'abandonne, je suis sur ce forum pour aider les autres, pas d'essayer de satisfaire certains egos.

Dernière modification par Anonyme68 (Le 07/01/2014, à 18:19)


Visiter mon site internet entièrement hébergé sur un serveur Ubuntu !
Mon profil Steam Bitcoins gratuit !

Hors ligne

#25 Le 07/01/2014, à 19:29

compte supprimé x0

Re : Changer DocumentRoot (Ubuntu 13.10, Apache 2.4)

Virtual host : fichier /etc/apache2/sites-available/toto

<VirtualHost *:80>
	ServerName toto
	DocumentRoot /home/hackenbush/toto

	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>

	<Directory /home/hackenbush/toto/>
		Options FollowSymLinks Indexes MultiViews
		AllowOverride None
		Order allow,deny
		Allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

</VirtualHost>

Le fichier /etc/hosts

127.0.0.1	localhost toto
127.0.1.1	debian64

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Le site : toto, dans le répertoire /home/hackenbush

~$ ls -la toto
drwxr-xr-x 10 hackenbush hackenbush   4096 oct.  26 16:10 toto

Et à l'intérieur de toto :

~$ ls -la ~/toto/index.php 
-rw-rw-r-- 1 hackenbush hackenbush 396 oct.   6  2012 index.php

Et quand je tape toto dans la barre de mon navigateur, mon site apparaît !

Je n'ai rien touché d'autre que ça ! Et je conseille à tout possesseur d'apache2 d'essayer, comme indiqué ici :
http://forum.ubuntu-fr.org/viewtopic.ph … #p15281851
Le reste c'est du baratin...

Dernière modification par Dr. Hugo Z. Hackenbush (Le 07/01/2014, à 19:57)

Haut de page ↑