Aller au contenu

Sujets conseillés

Posté

Bonjour,

Grâce à vous, je me sers maintenant de groupes pour autoriser l'accès de certains répertoire à certains groupes.

Mais comment coder dans le htacess d'un répertoire qu'il est accessible à tous sauf aux membres d'un groupe?

Une solution serait de coder :

AuthType Basic

AuthUserFile /monsite/dossier/fichierIdentifiants

AuthGroupFile /monsite/dossier/fichierGroups

require group group1 group2 group3 etc...

Comme cela, le groupe qui n'est pas dans la liste serait interdit mais cette liste risque d'être longue ou bien il faudrait mettre tous les utilisateurs autorisés dans un groupe particulier mais il faudrait le maintenir à jour.

En supposant que le nombre d'utilisateurs interdits est plus petit que le nombre d'utilisateurs autorisés, il est plus simple de déclarer seulement le groupe interdit.

J'ai essayé tout simplement de mettre

AuthType Basic

AuthUserFile /monsite/dossier/fichierIdentifiants

AuthGroupFile /monsite/dossier/fichierGroups

Deny group mongroupeInterdit

comme je l'ai vu expliqué dans ce site :

reference.wolfram.com

Mais ça ne fonctionne pas chez OVH ni sous Easyphp, car ce code produit une erreur 500.

Merci pour toute aide

Cordialement

Posté

Tu es sur que "deny group" existe par défaut sur apache ? je ne suis pas un spécialiste d'apache mais j'ai jamais vu, peut être un module à installer comme mod_auth pour les restrictions d'accès.

Posté

Bonjour,

Merci pour la réponse.

Je ne suis sûr de rien avec Apache que je ne connais que très peu.

Ma syntaxe "deny group" est juste un exemple parlant de ce que je cherche et comme j'ai vu cette syntaxe sur le site cité, je l'ai prise comme exemple.

Toute autre syntaxe me conviendrait si elle permet d'interdire un groupe.

Cordialement

Posté

deny group n'existe pas, le site que tu montres correspond à la syntaxe d'un autre soft, inspirée des .htaccess d'Apache, mais qui n'a rien à voir.

Il n'y a pas à ma connaissance de méthode pour faire ça en standard dans Apache. Mais tu peux mettre tes utilisateurs dans plusieurs groupes. Donc pour tous les utilisateurs dans les groupes autorisés tu les mets aussi dans un nouveau groupe pour ça, et pas les autres, et hop. Alternativement, tu peux générer des fichiers .htpasswd et/ou .htgroup différents suivants les contextes (à partir d'une liste "complète").

Note que comme indiqué dans la doc, si tu as beaucoup d'utilisateurs et/ou de groupes, ça risque d'être très peu efficace et tu as intérêt à utiliser un fichier DBM ou une base de données. D'ailleurs avec une base de données, soit en utilisant une vue, soit en utilisant Auth_PG_pwd_whereclause (pour pgsql, mais il doit y avoir la même chose pour mysql), tu peux restreindre les choses comme tu veux.

Jacques.

Posté

Bonjour,

Merci pour cette réponse claire et utile.

Pour le moment, je n'utilise pas de base de données, car au début de la conception je ne savais pas si l'hébergeur que l'on choisirait le permettrait (bien que ça soit rare ceux qui ne savent pas).

Le groupe auquel je souhaite interdire l'accès à un répertoire contient, pour l'instant, un seul membre! Il serait donc casse-pied de gérer un groupe "autorisés" comprenant plus d'une centaine de membres à cause d'un seul non autorisé. Comme tu le dis, il vaut mieux passer à la solution base de données dans ce cas.

Donc en attendant, je vais faire le filtrage en php par les pages situées dans le répertoire interdit.

Cordialement

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...