Forum Linux.débutant Donner le droit d'accès a Apache a un dossier.

Posté par  .
Étiquettes : aucune
0
2
déc.
2009
Bonsoir !

Tout premier message alors que je viens de m'acheter mon premier dédié... Ca surprend ! J'ai tout fait a la main avec quelques tuto, et je pense m'en être pas trop mal sortis.

Sauf en ce qui concerne certains détails. Deux pour être précis, et là je galère un peu...

Tout d'abord j'ai un soucis avec l'user www-data. Par défaut il a les droits de lecture sur /var/www sur les serveurs Gandi.

Et j'aimerais lui donner des droits de lecture sur un autre dossier ou je placerais mon site internet, on va dire /home/mysterygummy/www

Je n'ai pas très bien compris comment ça fonctionne, j'ai seulement pu accéder a la commande cat /etc/passwd qui me donne ceci :

www-data:x:33:33:www-data:/var/www:/bin/sh (j'ai seulement mis la ligne qui m'intéresse bien sur)

J'aimerais rajouter /home/mysterygummy/www pour y placer mon site internet et éviter d'avoir ceci quand je rentre l'ip de mon dédié (je n'ai pas encore de domaine) :

Forbidden

You don't have permission to access / on this server.

:lol:

Il faut aussi que je m'occupe de ce fichier si j'ai bien compris : etc/apache2/sites-available/default

Et je ne sais pas vraiment ce que je dois mettre... Tout ce que je peut vous dire c'est que j'aurais bientôt un .fr, savez vous ou je dois le placer dans tout ça ?


ServerAdmin webmaster@localhost

DocumentRoot /home/mysterygummy/www (oui je pensais m'en sortir juste en remplacant /var/www ... Ridicule hein ? ^^)

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all


ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all


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

Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128




Ça parait surement tout bête mais je m'en sors vraiment pas, j'en peut plus d'avoir surmonté d'autres soucis toute l'aprème !

Merci d'avance a tout ceux qui auront le courage d'affronter ma bêtise...
  • # Oula!

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Ne t'occupe pas de /etc/passwd, la config d'apache ne se fait que via /etc/apache2/*

    Ensuite, il nous faudrait au moins savoir quelle est l'URL qui te retourne Forbidden. Tu as mis l'IP? 127.0.0.1? Un FQDN?

    Jocker1: tu as bien un index.html dans /home/mysterygummy/www/ ?
    Jocker2: tu as bien une directive <Directory /home/mysterygummy/www/>...</Directory quelque part?

    La gelée de coings est une chose à ne pas avaler de travers.

    • [^] # Re: Oula!

      Posté par  . Évalué à 1.

      Ah je suis encore plus dans le vent alors...

      L'url qui me retourne Forbidden est l'ip de mon serveur, qui m'affichait "It works" quand j'avais réussis a installer Apache + PHP + mysql.

      Oui j'ai mis un index.html dans /home/mysterygummy/www/

      Qu'appelle tu une directive ? Oui désolé je suis vraiment nul. :(
      • [^] # Re: Oula!

        Posté par  (site web personnel) . Évalué à 2.

        Bon tout le monde a commencé comme ça...Si tu es un peu insomniaque ce n'est pas un drame et tu devrais y arriver.

        En gros la directive indique à apache où se trouve la racine du site qu'il doit afficher. En l' occurrence elle est fixée par défaut à /var/www. (ou /var/www/html/ suivant ta distribution

        Tu dois modifier cette directive et indiquer le chemin du répertoire que tu as choisi.

        Elle se trouve dans le fichier de configuration de apache qui se trouve dans /etc/apache2/ .

        Tu devrais d'ailleurs te renseigner sur le fonctionnement de ce fichier.
        • [^] # Re: Oula!

          Posté par  . Évalué à 1.

          Sauf que justement Apache n'a pas l'air d'avoir les droits pour pouvoir accéder a la directive que je veut imposer.

          Je sais pas si on se comprend bien. :(

          Parce que dans le dossier /etc/apache2/ je n'ai que le fichier "default" dans le dossier "sites-available" que je trouve la ligne a modifier qui indique "var/www" par défaut.

          Et lorsque je remplace "var/www" par "home/cequejeveut/www"

          Boum = Forbidden.

          En cherchant un peu j'ai remarqué qu'apparement apacha n'avait pas les droits pour accéder en lecture a "home/cequejeveut/www".

          Je suis perdu...
          • [^] # Re: Oula!

            Posté par  (site web personnel) . Évalué à 2.

            Bon tu viens de tomber sur un problème de droits Unix, vaste sujet....
            Bon pour faire court www-data n'est pas propriétaire du répertoire racine et il n'a pas les droits d'écriture dans ce répertoire.
            Il faut donc lui les donner. Un cours sur la question doit être disponible après une simple recherche sur Google, man chmod et man chown devraient être utiles.
            • [^] # Re: Oula!

              Posté par  . Évalué à 1.

              C'est justement ça que je ne comprend pas depuis le début.

              Et j'ai peur de donner de mauvais attributs en me débrouillant tout seul.

              J'aimerais juste savoir quelles commandes effectuer au niveaux des droits pour mon satané dossier "home/cequejeveut/www"...
            • [^] # Re: Oula!

              Posté par  . Évalué à 1.

              www-data : Certains serveurs web tournent en tant que www-data. Le contenu Internent ne devrait pas appartenir à cet utilisateur, ou un serveur Internet compromis serait alors en mesure de réécrire un site web. Les données transférées par les serveurs web, incluant les fichiers journaux, seront la propriété de www-data." voir 11.1.12.1 » http://www.debian.org/doc/manuals/securing-debian-howto/ch11(...)

              j'aurais fait :
              1) rajouter le user au groupe www-data dans /etc/group
              2) chown -R :www-data /home/user/www (on ne change pas le proprietaire, mais seulement le groupe)
              3) chmod -R 775 /home/user/www

              mais je sais pas si c'est très secure :(
              ?
              • [^] # Re: Oula!

                Posté par  (site web personnel) . Évalué à 1.

                Il n'est pas interdit de changer le proprietaire, cependant il faut autoriser www-data à lire les fichiers/traverser les répertoires.

                ajouter un groupe webmaster
                ajouter l'utilisateur au groupe webmaster
                chmod g+s /var/www
                chown -R webmaster /var/www

                Système - Réseau - Sécurité Open Source

  • # module userdir

    Posté par  . Évalué à 2.

    comme son nom l'indique, ca permet à un utilisateur d'avoir un dossier qui sera utilisable par apache

    ce dossier est par defaut /home/user/public_html
    apache a le droit df'aller lire dedans par l'adresse

    http://ton_serveur/~user

    evidemment tu peux ensuite mettre un nom de domaine qui ira specifiquement dans ce dossier
    et là c'est juste un fichier à creer dans /etc/apache2/site-available/

    avec les bonnes options
    et faire un lien vers ce fichier dans /etc/apache2/site-enabled/
  • # deny/allow...

    Posté par  . Évalué à 2.

    ton forbidden il vient probablement de là

    en plus du documentroot, verifie que le paragraphe
    < directory /home/user/www >
    ...


    existe et possede bien la ligne
    Allow from all
  • # Merci

    Posté par  . Évalué à 1.

    Merci pour vos conseils, je vais essayer de me débrouiller.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.