Journal Connaissez vous vos droits ?

Posté par  .
Étiquettes : aucune
0
25
nov.
2003
Soit le probleme suivant :

J'ai créér un dossier où tous les eleves peuvent stocker les résultats de leur TD afin que je les note.
Je peux donc bien entendu lire, modifier ou supprimer a volonté.
Mon assistant a les memes droits que moi, il m'aide dans ma tache.
Les éléves ne peuvent que sauver leur travail. En aucun cas ils ne peuvent voir le contenu du dossier (donc voir les autres TD), ou supprimer le contenu !
Enfin, mon 2eme assistant qui n'a pas autorité suffisante pour corriger les TD, a néanmoins le droit de pouvoir lire les TD, sans pouvoir toutefois les modifier ou les supprimer.

Voilà, j'apprend actuellement les droits unix en cours, et jme suis posé le cas pratique suivant. Et j'avoue qu'avec mes connaissances actuelles, je suis bien embété... Alors, comment faire ?


Merci de votre aide !
  • # Re: Connaissez vous vos droits ?

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

    Proposer ca en TD
  • # Re: Connaissez vous vos droits ?

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

    Alors, comment faire ?

    Avec les droits Unix ancestraux et un seul répertoire, je vois pas. Ils gèrent trois catégories, tu en as quatre. La solution (crado), c'est de créer deux répertoires, et de t'assurer que leur contenu est synchronisé. Ou alors, créer un script pour ton assistant2, qui se lance sous ton identité et qui lui met une copie dans le répertoire de son choix.

    La solution correcte, c'est d'utiliser des ACL (Access Control List), comme sous Windows ou VMS. Il y a des patches et des outils qui traînent sur le net, mais j'ai jamais regardé de près.
    • [^] # Re: Connaissez vous vos droits ?

      Posté par  . Évalué à 3.

      Ces patchs (inclus dans le 2.6) sont dispo là: http://acl.bestbits.at/(...)
      Il suffit ensuite d'installer et d'utiliser les utilitaires "getfacl" et "setfacl". (package "acl" avec Debian).

      Avec ces ACL, on garde le schéma Unix de base: (utilisateur propriétaire, groupe propriétaire, les autres), et on peut rajouter au cas par cas des droits (l'utilisateur untel a le droit de lire, le groupe machin a le droit d'écrire)... Et les droits par défaut d'un répertoire seront appliqués aux éléments créés dans celui-ci.
      Par ex: setfacl -m d:u:assistant:r répertoire donnera un droit de lecture pour l'utilisateur "assistant", en plus du droit d'utilisateur propriétaire par défaut, pour tous les fichiers créés dans le répertoire "répertoire" (c'est une ACL par défaut qui sera attribuée à chaque nouveau fichier).
  • # Re: Connaissez vous vos droits ?

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

    Tu crées un user commun pour toi et ton assistant et vous vous partager le mot de passe
    Tu créé un groupe pour toi et tes assisants

    Et tu mets les droits
    u=rwx
    g=rx
    a=wx

    Et il faut faire attention aux droits d'écriture des élèves pour qu'en créant leur fichier il ne soit lisible que par eux et vous. Il faudrait donc qu'en créant le fichier il appartienne au groupe de toi et tes assistants :
    rwx
    r_x
    ___

    En conclusion c'est le bordel :)
    Vivement les ACLs dans Linux

    L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire

    • [^] # Re: Connaissez vous vos droits ?

      Posté par  . Évalué à 2.

      Vivement les ACLs dans Linux
      Ça fait longtemps que ça existe. (cf post plus haut)
    • [^] # Re: Connaissez vous vos droits ?

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

      Et il faut faire attention aux droits d'écriture des élèves pour qu'en créant leur fichier il ne soit lisible que par eux et vous. Il faudrait donc qu'en créant le fichier il appartienne au groupe de toi et tes assistants :
      rwx
      r_x
      ___

      Pour cela il suffit de rajouter le bit s sur le groupe du repertoire de depot, et le bit t sur other:

      mkdir /path/to/depot
      chmod 753 /path/to/depot
      chown prof:profs /path/to/depot
      chmod g+s /path/to/depot
      chmod o+t /path/to/depot

      nous avons la presque tout ce qui est possible avec les droits standards unix:
      1 un utilisateur membre du groupe profs ne peut ecrire dans depot
      2 un utilisateur non membre peut ecrire mais pas lire (attention ecrire veut dire qu'il peut aussi effacer). Les fichiers seront crées en tant que utilisateur:profs sans droits pour le groupe other (genre -rw-r-----).
      3 les membres du groupe profs peuventg lire le depot
      4 seul le prof peut lire et ecrire.

      Le coup de l'assistant1 ne peut etre géré comme cela, il faut soit qu'il corrige dans un rep a lui, soit utiliser des acl.
  • # Re: Connaissez vous vos droits ?

    Posté par  . Évalué à 3.

    Si tu ne veux pas utiliser les ACL, tu peux déjà faire un chmod 773 sur le répertoire de dépot, ce qui empêche les utilisateurs de voir le contenu du répertoire, mais pas de faire des opérations sur les fichiers qui s'y trouvent s'ils connaissent leurs noms. Bref, pas génial.

    Sinon, l'un des problèmes que tu vas rencontrer est que les fichiers déposés par les élèves leur appartiendront et donc mettront dessus les droits d'accès qui leur plaisent, y compris celui de t'autoriser/t'interdire de les lire. C'est le problème. Tu peux mettre des filtres sur les différents fichiers mais tu ne peux pas forcer la création d'un fichier sous l'identité d'un autre utilisateur (ce qui reviendrait à une usurpation), de même que tu ne peux pas non plus changer le propriétaire d'un fichier, même s'il t'appartient initialement, sans avoir de « Super Pouvoirs » (comprendre: ceux du root).
    Tout cela permet d'éviter les situations inextricables du style « Je crée un fichier que je ne plus effacer » (ennuyeux lorsque l'on vient de remplir son quota d'espace disque par un malencontreux cat /dev/zero > fichier), voir même « J'ai créé un fichier que je ne peux pas mettre à jour » qui peut poser problème dans le cas présent (remise de devoirs notés). Il te faut donc devenir « Power User » comme on dit, lorsque tu en as besoin. Evidement, cela ne passe plus par le filesystem, pour les raisons que l'on vient d'évoquer. Le mieux est encore d'utiliser sudo.

    Donc, déjà mets en place une structure qui te permette d'y accéder. Le mieux est de reprendre le principe de /home .

    Crée un groupe « profs », et mets-y ton user et celui de ton assistant.
    Crée un répertoire de dépot sous ton identité, et appartenant au groupe « profs »
    Crée un sous-répertoire par élève, lui appartenant, et étant membre du groupe « profs ».
    Fais un chmod 755 sur le répertoire de dépot (lecture/parcours pour tous, mais pas en écriture, sauf pour toi).
    Fais un chmod 750 * à l'intérieur du répertoire de dépot, pour donner pour chaque sous répertoire les pleins pouvoirs à son propriétaire et les droit d'accès et de lecture pour les membres de « profs ».

    Cela permet:
    - à chaque éleve de faire ce qui lui plaît dans son sous-répertoire, mais pas d'effacer ce sous-répertoire (membre du rép de dépot qui t'appartient, et dont les droits en écriture ont été révoqués).
    - d'accorder l'accès à tous les répertoires à tous les membres du groupe « profs ».

    Les fichiers étant créés dans les conditions normales (c'est à dire par défaut, et sans que umask ait été spécifiquement modifié) en lecture seule pour tout le monde.

    Tu as donc rempli la première étape: Créer une zone privée et inviolable pour chaque élève, en y appliquant toutefois un droit de regard pour quelques privilégiés. Ensuite, il te faut t'accorder des droits: man sudoers. Le plus simple est d'être membre de wheel mais tu peux faire un gestion bien plus fine des commandes et personnes autorisées.

    Bon courage.
  • # Re: Connaissez vous vos droits ?

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

    Tu peux faire une petite appli web en php ? Les eleves (guest) ne pouvant voir que le systeme de depose et Assistant 2 la consultation des textes
  • # Depot Simple, type /tmp

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

    Pour le repertoire de depot, il faut faire un repertoire du type /tmp. Il faut y joindre de bit 't': ls -ld /tmp
    drwxrwxrwt 16 root root 8192 Nov 26 09:23 /tmp/

    Cet indicateur produit l'effet suivant :
    - tout le mode peut creer un fichier (ou repertoire),
    - seul le createur peut supprimer.

    Du coup, avec l'arborescence suivante, chaque eleve dispose d'un repertoire de depot sur lequel il est seul maitre a bord :
    /chemin/vers/depot/
    |- eleve1/
    |- eleve2/
    |...
    |- eleve/

    En gerant correctement les masques, tout roule.

    Une solution encore plus simple consiste a creer le rateau precedent en attribuant la propriete de chaque repertoire eleve a l'eleve correspond (et en retirant les droits de consultation pour les autres).
  • # Solution 'securisee'

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

    Pour garantir que personne ne copie sur les autres (j'imagine que c'est le besoin derriere En aucun cas ils ne peuvent voir le contenu du dossier) je ne vois qu'une solution : cryptage avec gpg par exemple.

    Chaque eleve remet son travail sous forme d'un tar qu'il "crypte" avec une cle publique du professeur. Ainsi, seul le professeur (ou ses assistants s'ils ont acces a la cle privee) peuvent consulter le travail des eleves.

    Toute autre solution est 'fragile' du point de vue de la securite (les eleves sont souvent bidouilleurs et trouveront le moyen de piquer le travail des autres dans le cas contraire).
  • # Re: Connaissez vous vos droits ?

    Posté par  . Évalué à 1.

    Merci tout le monde pour votre aide !
    J'suis content de voir que mon journal a fait réagir, j'lai pas ecris pour rien ! :-)
    Je ne connaissai pas les ACL, et jpense que si ce sera dans les versions d'unix a venir, autant essayer de s'y mettre maintenant ! donc je pars a la recherche dès maintenant de tutoriaux acls :-))

    Merci encore pour toutes vos informations,
    J'ai appris plein de chose interessante donc ce soir je me coucherai moins stupide !!

    Allez, bonsoir

    ++
    la tite cho7

Suivre le flux des commentaires

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