Forum général.général Gestion des droits d'accès des fichiers via le serveur web avec les droits UNIX

Posté par  (site web personnel) .
Étiquettes : aucune
0
6
nov.
2008
Salut, salut,

Alors voila, tout le monde connais les htaccess et autres modification du fichier de conf d'apache pour limiter l'accès à une partie d'un site. Ce que j'aimerais c'est ne pas avoir un fichier "htpasswd" à part, mais utiliser les droits du système UNIX pour gérer cela.

Quelqu'un a-t-il de bons liens où des choses à me dire sur le sujet ?
  • # je cherche à comprendre

    Posté par  . Évalué à 3.

    ton apache tourne surement en tant que www-data
    c'est lui qui va chercher les infos dans les dossiers.

    sortie de là, tu ne peux pas attribuer des fichiers à toto et seulement à toto
    si tu veux ensuite que titi n'y accede pas par le web.

    vu que ce sera de toute facon apache qui ira les chercher.
    • [^] # Re: je cherche à comprendre

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

      www-data peut faire un sudo comme tout le monde non ?
      • [^] # Re: je cherche à comprendre

        Posté par  . Évalué à 2.

        ben c'est quoi l'interet ?

        dans la realité tu as
        un dossier toto qui appartient à toto et qui devra avoir le groupe www-data en lecture
        un dossier titi qui appartient à titi et qui devra avoir le groupe www-data en lecture
        afin que www-data (apache) puisse acceder au contenu


        et toi avec ton "sudo" tu voudrais avoir :
        - un dossier toto qui appartient à toto
        - un dossier titi qui appartient à titi
        - www-data qui fait du sudo

        dans les 2 cas c'est www-data qui fera l'acces aux dossiers lors de la consultation du site
        donc que ce soit toto ou titi qui consulte le site, ils verront les dossiers de l'autre

        je n'ai donc toujours pas compris ce que tu veux faire
        • [^] # Re: je cherche à comprendre

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

          L'intérêt c'est de pouvoir gérer tous les utilisateurs et leur droits via le système d'exploitation au lieu de faire une gestion à part juste pour apache. Ce serait quand même bien plus pratique non ?
          • [^] # Re: je cherche à comprendre

            Posté par  . Évalué à 2.

            je commence à comprendre

            en fait ce que tu cherche c'est que le htpasswd soit le reflet du /etc/passwd du systeme ?

            afin que chaque utilisateur du systeme puis venir surfer sur le site web, mais pas les autres ?
            • [^] # Re: je cherche à comprendre

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

              C'est en gros l'idée, avec des restrictions seulement sur certaines parties du site.

              Par exemple les répertoires appartenant à l'utilisateur www-public serait publics, tandis que les fichiers appartenant à un autre utilisateur ne serait accessible qu'à celui-ci ou aux personnes faisant partie du groupe en ayant le droit.

              Prenons un exemple concret, avec un site de photographies. Certaines photo, comme des paysages, peuvent être consultés par tous. D'autres, seulement par ma famille pour les photos de famille. Et enfin, d'autres seulement par mes amis.

              Le but est donc que puisse avoir quelque chose du genre :

              -rw-r--r-- 1 www-public www-public 424242 jan 1 00:00 paysage.jpeg
              -rw-r----- 1 moi famille 424242 déc 25 00:00 noel_en_famille.jpeg
              -rw-r----- 1 moi amis 424242 jan 1 00:00 grosse_biture.jpeg


              N'importe qui peut accéder à paysage.jpeg, en revanche, seuls l'utilisateur moi et les utilisateurs dans les groupes autorisés peuvent lire noel_en_famille.jpeg et grosse_biture.jpeg

              Et ce que c'est possible avec apache ou n'importe quel autre serveur http ?
              • [^] # Re: je cherche à comprendre

                Posté par  . Évalué à 2.

                regarde peut-etre du coté des ACLs

                car sinon je ne vois pas trop, vu que dans TOUS les cas,
                c'est www-data qui viendra lire les fichiers à afficher dans le navigateur

                apres il te faut peut-etre faire un site avec identification (comment sur les forums par exemple)
                puis grouper les gens,
                enfin faire un album selon le groupe des gens
                • [^] # Re: je cherche à comprendre

                  Posté par  . Évalué à 1.

                  Pourquoi pas un petit script qui génére tous les .ht* en fonction des comptes/droits/acls du système ?
                  (prévoir une deuxième cafetière pour automatiser tout ça avec un cron ou mieux des inotify + calcul des diffs, etc)
                • [^] # Re: je cherche à comprendre

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

                  Non justement, ce que je voudrais c'est que si forum il devait y avoir, les droits sur celui-ci soit également géré via le système de droits du système.
                  • [^] # Re: je cherche à comprendre

                    Posté par  . Évalué à 2.

                    etant donné que c'est apache (www-data) qui va lire les fichiers pour les donner au navigateur de l'utilisateur

                    je ne vois pas comment tu peux faire,
                    il faut bien que tu demande les logs/passent à un instant donné pour savoir qui est devant le navigateur

                    tu dois pouvoir coder un ecran de login qui va chercher les infos dans /etc/passwd
                    mais pour qu'apache lise les droits de chaque fichier pour savoir s'il doit l'afficher ou pas

                    je pense qu'un cookie sur le navigateur de l'utilisateur (avec l'identification entrée plus tot),
                    et un code PHP (ou autre langage web) doit pouvoir lire les droits d'un fichier.

                    en quoi les visiteurs de ton site web sont ils obligés d'avoir aussi un compte sur ton serveur ?

                    il existe plein de solution pour gerer les utilisateurs d'un forum/d'une galerie à partir d'une base de donnée.

                    donner un acces "system" à un visiteur web, je trouve ca moyens au niveau securité
                    • [^] # Re: je cherche à comprendre

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

                      Ce n'est en rien une obligation, c'est juste que je trouverais ça plus pratique et cohérent. Pour ce qui est de la sécurité, du moment que les utilisateurs ne sont pas dans un groupe qui les autorise à se connecter en ssh/telnet à la machine, je vois pas ce que ça ouvre en plus comme faille. Par contre, si j'ai envie de donner/retirer cet accès, c'est réglé en une commande.

                      Les solutions pour gérer les utilisaters via une bdd, je connais, ça ne m'intéresse pas ici, au contraire.
  • # mod_authz_owner

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

    + basic_auth + mod_user

    Ce n'est peut etre pas exactement ce que tu cherches, mais ca permet de n'autoriser que le nom d'utilisateur utilise par Apache (avec basic_auth, par exemple) qui correspond a celui de l'utilisateur Unix.
    Par contre, ca n'utilise pas les comptes unix reels, donc tu dois garder toi meme ton fichier utilisateurs Apache, dont les noms doivent correspondre aux utilisateurs Unix.
  • # Et ceci?

    Posté par  . Évalué à 1.

    Apache+module mod_authnz_external+pwauth+pam ou Apache+module mod_authnz_external+pwauth+shadow

    http://blog.innerewut.de/2007/6/26/apache-2-2-authentication(...)

    Prevoir du cafe ...

Suivre le flux des commentaires

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