IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Droits d'accès aux répertoires


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut [Système] Droits d'accès aux répertoires
    Bonjour à tous,

    J'aurais besoin d'une petite aide concernant les droits d'accès. J'ai créé un script qui liste un repertoire présent sur le serveur de l'entreprise. Le serveur atteint, ici le "L:" comportent 6 dossiers dont 4 accessibles pour la plupart des utilisateurs et les 2 autres accessibles pour 2 voire 3 personnes. Le problème est donc de poursuivre ces restrictions d'accès. Voici mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    <?php
    function liste($chemin)
    {
    $tab = array();
    	// Accès au repertoire
    $handle_du_repertoire_ouvert=opendir($chemin);
    	// Boucle réccupérant toute les entrées contenues dans le répertoire
    $sortie_de_la_boucle=false; 
    while ($entree=readdir($handle_du_repertoire_ouvert) )
    	{
    		if (($entree!=".")&&($entree!=".."))
    		{
    			if (is_dir($chemin.$entree))
    			{
    				echo "<a href ='$chemin$entree' target='_self'>".$entree."</a><br>";
    				liste($chemin.$entree);
    			}
    		}
    	$tab[]=($chemin.'/'.$entree);
    	}
    }
    liste("L:/");
    ?>
    J'avais pensé à une solution qui était :

    if (($entree!=".")&&($entree!="..")&&($entree!="filliales")&&($entree!="sources"))

    Mais en fesant comme ceci, cela resteindra l'acces aux utilisateurs qui n'ont pas d'accès restreint puisque mon script n'affichera pas ces dossiers "filliales" et "sources". Il faudrait donc une fonction capable de ne pas afficher les dossiers suivant les droits d'accès de l'utilisateur.

    Merci d'avance pour vos réponses

  2. #2
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Comment connait-on les droits de l'utilisateur?

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut


    Le souci c'est que ton serveur PHP, il accède au lecteur L: avec les droits de l'utilisateur exécutant Apache et PHP, donc certainement pas les droits des différents personnes se connectant au site. Donc déjà, tu as une certaine limitation applicable de ce côté-là.

    En fait, le seul moyen que tu aurais de récupérer ces droits individuels c'est que PHP soit exécuté avec les différents droits ou de récupérer le résultat d'une exécution d'un programme côté client, ce qui n'est a priori pas possible ou tout du moins pas simple. Le seul moyen d'arriver à tes fins, à mon avis, c'est de maintenir une table de correspondance entre tes utilisateurs et des droits d'accès, mais encore faut-il qu'ils soient authentifiés/reconnus de manière certaine sur le serveur, ce qui n'est pas évident.


    Sinon, par rapport au post que tu avais créé avant, c'est quoi la différence qui fait que ça marche ?

  4. #4
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par _Mac_

    Sinon, par rapport au post que tu avais créé avant, c'est quoi la différence qui fait que ça marche ?
    Ok mac !

    En fait j'ai cherché un script sur le net ou la personne cherchait a atteindre un répertoire présent sur le serveur et j'ai adapté avec celui que j'avais créé dans un premier temps. Et après adaptation, comme par magie en rentrant "L:/" dans le chemin l'erreur n'était plus là, je ne sais donc toujours pas pourquoi ca ne marchait pas puisque quand je rentrais L:/ dans mon script précédent j'avais toujours la même erreur : WARNING "failed to open dir"

    Enfin bon maintenant ca marche et c'est le principal il faut maintenant que j'arrive a jérer les droits d'accès.

    Sinon juste pour info, je n'ai pas accès aux deux dossiers dont je vous parlez(filliales & source), il faut donc que ceux qui ont les droits d'accès puisse toujours avoir accès a ces dossiers.

  5. #5
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par coyotte507
    Comment connait-on les droits de l'utilisateur?
    Ca pour le savoir il suffira que je demande aux responsables du réseaux informatiques (puisque l'utilisateur sera forcément quelqu'un de l'entreprise) qui me sortira les noms d'utilisateurs ayant accès a ces dossiers. Le problème est de les reconnaitre via mon script php !

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Y a combien d'utilisateurs concernés ? Y a un annuaire d'entreprise (Active Directory, par exemple) ? C'est jouable de demander à ce que les utilisateurs s'authentifient sur l'appli ?

  7. #7
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par _Mac_
    Y a combien d'utilisateurs concernés ? Y a un annuaire d'entreprise (Active Directory, par exemple) ? C'est jouable de demander à ce que les utilisateurs s'authentifient sur l'appli ?
    Il n'y a pas d'utilisateurs concernés particulièrement. Tout les utilisateurs peuvent avoir accès au site que je met en place seulement il m'est demandé de respecter les droits d'accès, chose qui n'est pas vraiment évidente.

    Sinon, oui je pense que c'est jouable de demander aux utilisateurs de s'identifier...Je pensais d'ailleur a créer un tableau avec les identifiants des utilisateurs et après avoir pris connaissance des droits de chacuns (dans mon cas s'ils ont accès aux dossiers concernés) faire une authentification des identifiants. C'est à dire que le script sera capable de définir pour un identifiant donné s'il doit afficher les deux dossiers supplémentaires ou non.
    Tu trouves que c'est une bonne idée ? Ou alors si quelqu'un a quelque chose de plus simple et de plus rapide sous la main, je suis ouvert à toute proposition

    D'ailleur tu dois bien avoir quelque chose dérrière la tête au vue de ta question, non ?

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Oui et non, j'ai pas vraiment d'idée. J'essaie de voir quelles sont les possibilités. Mais à mon avis une chose est claire : il va falloir demander aux utilisateurs de s'identifier sur ton appli, pas le choix.

    J'ai éventuellement qqch à te suggérer :
    - Les utilisateurs s'authentifie sur ton serveur en utilisant leur login Windows et n'importe quel mot de passe a priori. Si c'est possible, les authentifier par rapport au contrôleur de domaine NT qui doit être un annuaire AD. Comme ça, tu ne t'occupes pas du mot de passe et tout le monde et content car il n'y a pas de nouveau login ou mot de passe à connaître, mais c'est pas le plus important.
    - Voir avec l'admin qui s'occupe du serveur de fichier s'il peut te sortir régulièrement (tâche programmée ou cron, selon l'OS du serveur) un fichier plat contenant un mapping entre les logins des utilisateurs et les droits des répertoires. Selon la façon dont il gère la sécurité, s'il utilise plutôt des groupes, voir pour récupérer régulièrement le mapping entre les groupes et les répertoires et voir si tu peux récupérer également "online" le groupe des utilisateurs ou vérifier si tel utilisateur est dans tel groupe (si vous utilisez AD, avec une requête LDAP bien foutue, ça devrait être faisable sans trop de difficultés).
    - Tu importes dans ta base de données le fichier de mapping généré précédemment.
    - Pour générer les liens vers les répertoires auxquels PHP n'as pas droit, voir un mécanisme identique pour récupérer régulièrement (genre tous les soirs) l'arborescence du serveur de fichiers.

    Je ne sais pas si je suis bien clair et si tu as compris ce que je veux dire. Le pb, c'est que ça commence à faire des flux dans tous les sens et je ne vois malheureusement pas trop comment s'en passer.

  9. #9
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par _Mac_
    Oui et non, j'ai pas vraiment d'idée. J'essaie de voir quelles sont les possibilités. Mais à mon avis une chose est claire : il va falloir demander aux utilisateurs de s'identifier sur ton appli, pas le choix.

    J'ai éventuellement qqch à te suggérer :
    - Les utilisateurs s'authentifie sur ton serveur en utilisant leur login Windows et n'importe quel mot de passe a priori. Si c'est possible, les authentifier par rapport au contrôleur de domaine NT qui doit être un annuaire AD. Comme ça, tu ne t'occupes pas du mot de passe et tout le monde et content car il n'y a pas de nouveau login ou mot de passe à connaître, mais c'est pas le plus important.
    - Voir avec l'admin qui s'occupe du serveur de fichier s'il peut te sortir régulièrement (tâche programmée ou cron, selon l'OS du serveur) un fichier plat contenant un mapping entre les logins des utilisateurs et les droits des répertoires. Selon la façon dont il gère la sécurité, s'il utilise plutôt des groupes, voir pour récupérer régulièrement le mapping entre les groupes et les répertoires et voir si tu peux récupérer également "online" le groupe des utilisateurs ou vérifier si tel utilisateur est dans tel groupe (si vous utilisez AD, avec une requête LDAP bien foutue, ça devrait être faisable sans trop de difficultés).
    - Tu importes dans ta base de données le fichier de mapping généré précédemment.
    - Pour générer les liens vers les répertoires auxquels PHP n'as pas droit, voir un mécanisme identique pour récupérer régulièrement (genre tous les soirs) l'arborescence du serveur de fichiers.

    Je ne sais pas si je suis bien clair et si tu as compris ce que je veux dire. Le pb, c'est que ça commence à faire des flux dans tous les sens et je ne vois malheureusement pas trop comment s'en passer.
    Ok mac ! Ne t'inquiète pas j'ai bien compris ce que tu essayais de me faire comprendre. Je viens d'arriver au boulot, je te redonnerais des nouvelles dans la journée. En tout cas merci et à toute à l 'heure.

Discussions similaires

  1. Droits d'accès aux répertoires sous Apache
    Par clubns dans le forum Apache
    Réponses: 1
    Dernier message: 11/12/2008, 19h06
  2. [Configuration] droits d'accès aux fichiers
    Par drommk dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 20/06/2006, 17h31
  3. Droits d'acces aux repertoires sous win xp
    Par jpelaho dans le forum Windows XP
    Réponses: 7
    Dernier message: 07/06/2006, 10h09
  4. API pour droit d'accès sur répertoire
    Par swirtel dans le forum Windows
    Réponses: 1
    Dernier message: 03/05/2006, 13h33
  5. [Tomcat]Droit d'accès aux fichiers créés par une servlet
    Par loulouleboss dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 15/07/2004, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo