Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Howto] Organisez votre serveur Web Apache
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
digimag
Guru
Guru


Joined: 14 May 2005
Posts: 449
Location: Toulouse, France

PostPosted: Sat Sep 10, 2005 10:45 am    Post subject: [Howto] Organisez votre serveur Web Apache Reply with quote

TUTO: Bien organiser votre espace Web avec Apache
Intro : Si vous êtes un utilisateur plutôt paranoïque côté sécurité, je suis pose que votre umask dans /etc/profile est défini sur 077. Ce qui veut dire que tous les fichiers créés par défaut ont comme attributs -rw- --- ---. Personne ne peut lire ou écrire vos fichiers, sauf vous-même et c'est rassurant. Maintenant supposons que vous êtes aussi un développeur web et que vous souhaitez héberger ou tout simplement tester votre site via un serveur local. Dans notre cas, il s'agit d'Apache.
Problème: Lorsque vous créez un nouveau fichier, Celui-ci est par défaut illisible par Apache à cause de ce fameux umask. Mon but est de faire en sorte que seuls les utilisateurs qui appartiennent au groupe www + Apache puissent lire les fichiers.
Comment va-t-on faire?D'abord, lancer Apache avec les droits du groupe www. Ensuite, grâce aux ACL nous allons pouvoir définir les attributs par défaut, malgré ce qui est imposé par umask. Enfin, avec l'attribut SGID nous pourrons forcer chaque fichier créé dans /var/www/ à appartenir au groupe www.


  1. Installer ACL
    Code:
    # emerge -av acl

  2. Ajouter acl à votre variable USE dans /etc/make.conf
  3. Réinstallez les ebuilds avec le support ACL
    Au moins, coreutils et rsync devraient être recompilés.
    Code:
    # emerge -av coreutils rsync
    Pour mettre tout à jour, exécutez
    Code:
    # emerge -avuDN world

  4. Ajoutez le support ACL dans le noyau
    Code:
    # cd /usr/src/linux && make menuconfig
    Choisissez les options suivant le système de fichiers utilisé. Dans mon cas c'est Ext3:
    Config du noyau wrote:
    File systems -->
    < * > Ext3 journalling file system support
    [ * ] Ext3 extended attributes
    [ * ] Ext3 POSIX Access Control Lists
    Recompilez le noyau de façon habituelle et réinstallez votre chargeur de démarrage si nécessaire.
  5. Modifiez les options de montage
    Avant de redémarrer, il est utile de préciser sur quelles partitions vous souhaitez activer ACL. Modifiez votre /etc/fstab, ajoutez acl en paramètres, exemple:
    Code:
    # <fs>          <mountpoint>    <type>          <opts>                  <dump/pass>
      /dev/hdb1      /               ext3            acl,noatime              0 1

  6. Redémarrez
  7. Configurez le tout
    Créez le groupe www et ajoutez-y les utilisateurs de votre choix. Editez /etc/apache2/conf/apache2 et ajoutez:
    Code:
    User apache
    Group www
    Il ne reste plus qu'à configurer les accès au repertoire /var/www:
    Code:
    # cd /var/www
    chmod -R go-rwx ./
    chown -R root:www ./
    chmod +s ./
    setfacl -R -m g::rwx ./
    setfacl -R -m d:g:www:rwx ./
    setfacl -R -m d:g::rwx ./
    setfacl -R -m d:o::--- ./
    setfacl -R -m o::--- ./
    Voilà, tout devrait fonctionner à présent. Redémarrez apache:
    Code:
    /etc/init.d/apache2 restart

  8. Appreciez
    Et n'hésitez surtout pas de me faire part de vos suggéstions et corrections! Moi-même je viens à peine de comprendre le système de fonctionnement, donc bien sûr tout est à vérifier par vous même :wink:
    + merci à Starch de m'avoir mis sur la bonne piste :)

En savoir plus

  1. liens
    Site officiel sur ACLs: (Anglais) Extended attributes ans ACLs for Linux
    Article sur les ACLs: (Français) Linuxfrench.net
  2. La rapidité d'accès
    D'après l'article publié sur Linuxfrench.net, la mise en place des ACLs diminue les performances de façon insensible sur les systèmes de fichiers Ext2 ou Ext3, ce qui n'est pas le cas sur XFS. Si vous utilisez XFS, vous pouvez toutefois créer une partition indépendante pour /car/www en Ext3.


Last edited by digimag on Tue Nov 11, 2008 10:49 am; edited 6 times in total
Back to top
View user's profile Send private message
TTK
Guru
Guru


Joined: 02 Mar 2004
Posts: 523

PostPosted: Sat Sep 10, 2005 10:54 am    Post subject: Reply with quote

Je pige pas tout ...
L'interet des acl ?

Un peu la même problématique: soit un projet "toto" dont les dev souhaitent partager un rep commun /ProjToto.
Je crée un groupe toto, j'y ajoute tous les développeurs, je mets /ProjToto en root:toto rwxrws--- et ça le fait non ?
Back to top
View user's profile Send private message
digimag
Guru
Guru


Joined: 14 May 2005
Posts: 449
Location: Toulouse, France

PostPosted: Sat Sep 10, 2005 11:10 am    Post subject: Reply with quote

TTK wrote:
Je pige pas tout ...
L'interet des acl ?

Un peu la même problématique: soit un projet "toto" dont les dev souhaitent partager un rep commun /ProjToto.
Je crée un groupe toto, j'y ajoute tous les développeurs, je mets /ProjToto en root:toto rwxrws--- et ça le fait non ?
effectivement, rwxrws--- suffirait pour que tous les fichiers et répertoires soient avec le même groupe "toto".

Mais si les développeurs ont par défaut umask=077, que va-tu faire? Redéfinir les permissions sur rw-rw---- à chaque nouveau fichier créé? C'est pas très agréable. ACL peut aussi définir des permissions par défaut dans un répertoire. Le besoin est apparu car il n'est pas possible (à ma connaissance) de définir le umask sur un seul répertoire.

Autre problèmatique, PHP peut aussi créer des fichiers, avec ACL ils auront automatiquement les bonnes permissions :)

Le Howto est tout à fait inutile si votre umask est inférieur ou égal à 027
Back to top
View user's profile Send private message
TTK
Guru
Guru


Joined: 02 Mar 2004
Posts: 523

PostPosted: Sat Sep 10, 2005 9:04 pm    Post subject: Reply with quote

Ah ouais, umask 22 ici ...
Un poil parano le 077 quand même non ? Ou alors il faut un groupe par user ... à la mandrake & co.

Je me suis souvent demandé si les ACL ne ralentissaient pas un peu le système. Sous sun os à une certaine époque je jurais que par les ACL mais j'ai jamais testé sous linux. Toujours trouvé une autre solution.

M'enfin bon je comprends mieux l'interêt (indéniable du coup) de ton tuto.

Tshaw
Back to top
View user's profile Send private message
digimag
Guru
Guru


Joined: 14 May 2005
Posts: 449
Location: Toulouse, France

PostPosted: Sun Sep 11, 2005 3:32 pm    Post subject: Reply with quote

Source: Comment fonctionnent les ACL Posix sous Linux... - linuxfrench.net
Côté performance

Encore une fois l’excellent travail réalisé par A. Grünbacher permet d’appréhender l’impact des ACL sur la rapidité d’accès aux systèmes de fichiers et ce en fonction de la plupart des types de système de fichiers. Il ressort de son étude que, sur un type de fichier ext2/ext3 et de façon très générale, la mise en oeuvre des ACL n’augmente que de très peu les temps d’accès aux fichiers et ne sera que peu perceptible par l’utilisateur. En revanche, l’utilisation des ACL avec le système de fichiers XFS (surtout 256) semble pénalisante.
Back to top
View user's profile Send private message
Jacqueline
Apprentice
Apprentice


Joined: 28 Jul 2006
Posts: 161
Location: Netherland

PostPosted: Mon Nov 06, 2006 2:10 am    Post subject: Reply with quote

Bonjour.

Un sujet intéressant ( parmi bien d'autres :D ). je me suis bien amusée avec les acl, découvertes en passant de la Suse 9.0 à la 9.2, après avoir découvert le sytème des droits de Linux, en créant divers utilisateurs (utilisateur prenant alors le sens d'utilisation différentes de linux : bureautique, bidouilles diverses, etc.. ) et avec des partitions de données communes à plusieurs systèmes ( au diable l'avarice ! , mais c'était dans le but de me familariser avec tout ça ! ) . C'est super les ACL :D

J'avais donc profité des acl pour donner plus de droits avec les acl à un des user afin de pouvoir faire le ménage dans cette usine à gaz ! ( moi en l'occurence, pour ne pas le faire avec les droits de root, j'aurais pu, mais bon c'est un cas d'école )

Oui mais voilà je me suis retrouvée avec un problème avec plusieurs systèmes pour avoir accès à ces données sur des partitions communes : J'attends surtout une confirmation :D Les acl , sont bien inscrites physiquement sur les partitions elles mêmes ? ( et dans les rep je suppose ? )

Avec le deuxième système ça ne marchait plus parce que je n'avais pas les mêmes numéros et noms de user et de groupe "privilégié" . j'ai refait les acl , mais ça ne marchait plus dans le premier système, ce qui m'obligeait à standardiser la création des users et des groupes sous les deux systèmes pour contourner ce problème.

Je crois me souvenir que si on met le même nom, ( avec des numéros de user et de groupe différents sur les deux systèmes, selon l'ordre de création ) , c'est le numéro de user correspondant qui l'emporte, comme si le numéro du user du système avec lequel on crée l'acl étendue était inscrit sur la partition....ou dans les répertoires.

Votre sujet me rappelle ce point où je l'avais laissé, avant de prendre une année sabatique :) ( sans PC ) et j'avais une autre idée plus utile d'application des acl sur des partitions de données communes à plusieurs systèmes.

Ravie d'échanger sur ce sujet...si vous êtes disponible.
Back to top
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Mon Nov 06, 2006 9:57 am    Post subject: Reply with quote

Bonjour et bienvenue parmis nous ! :D

Jacqueline wrote:
Je crois me souvenir que si on met le même nom, ( avec des numéros de user et de groupe différents sur les deux systèmes, selon l'ordre de création ) , c'est le numéro de user correspondant qui l'emporte, comme si le numéro du user du système avec lequel on crée l'acl étendue était inscrit sur la partition....ou dans les répertoires.
Alors je vais peut-être dire une bêtise (ça sera ni la première ni la dernière :roll: ) et d'autres me reprendront si besoin. Il me semble que le nom d'utilisateur et de groupe n'est qu'une astuce pour rendre le système "human readable", un peu comme les arguments "rxw" correspondent à un u/mask. C'est plus simple pour nous. Mais pour la machine se sont les numéros qui comptent (en gros, les numéros sont traduits en noms à l'affichage d'après les fichiers "/etc/passwd" et "/etc/group"). C'est donc forcément le numéro du user correspondant qui "l'emporte" et cela avec ou sans les acl. Il est donc bien utile dans le cas de partitions communes à plusieurs systèmes unix/linux de spécifier les UID/GID à la création des users/groups sur chaque système pour éviter les soucis. :roll:

Mes 0.02 cents

Et au fait, bravo et merci pour ce tuto digimag. J'aurai bien aimé que tu détailles un peu les commandes "setfacl" (bon, c'est sûrement dans les liens fournis mais bon, "poil dans la main quand tu nous tiens" ... :lol:
_________________
La connaissance s'accroît quand on la partage.
JCB
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum