Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/02/2008, à 16:23

insomniak

Droits users : cas d'école

Bonjour à tous,

je me pose une question (voire une colle) depuis un moment. J'ai beau y reflechir je ne trouve pas de solution...
Cela concerne l'attribution des droits utilisateurs.
Imaginons un cas d'école dans les deux sens du terme.
Je suis manager d'un serveur dans un école. Je dois mettre en place un serveur de fichiers personnels/Classe.
Donc le schéma est le suivant :

/Fichiers    Racine du repertoire des fichiers
/Fichiers/CM1    Racine des repertoires pour la classe CM1
/Fichiers/CM2    Racine des repertoires pour la classe CM2
/Fichier/CM1/EleveCM1-1     Racine du repertoire personnel d'un éleve de CM1
/Fichier/CM1/EleveCM1-2     Racine du repertoire personnel d'un autre éleve de CM1
/Fichier/CM2/EleveCM2-1     Racine du repertoire personnel d'un éleve de CM2
/Fichier/CM2/EleveCM2-2     Racine du repertoire personnel d'un autre éleve de CM2
/Fichier/Récré/    Racine du repertoire de la Récré accessible par tous les éleves

Il y a plusieurs types de comptes utilisateurs :

- L'utilisateur superadmin : il a tous les droits sur toute l'arbo /Fichiers
- L'utilisateur eleve : il a tous les droits sur son repertoire perso (/Fichier/CMn/EleveCMn-n/)
- Les utilisateurs eleve vont également pouvoir consulter des fichiers en readonly dans /Fichiers/CMn mais pas les sous répertoires des copains
- Les utilisateurs eleve ont accès total au repertoire Récré mais pas les profs
- Chaque utilisateur prof a accès à sa classe et rien d'autre

Donc j'en déduis quelque chose du genre :

Groupes :
- admin
- profs
- CM1
- CM2

Users :
- administrator (groupe admin)
- EleveCM1-1 (groupe CM1)
- EleveCM1-2 (groupe CM1)
- EleveCM2-1 (groupe CM2)
- EleveCM2-1 (groupe CM2)
- Prof1 (groupe profs)

1) Je me demandais donc s'il était possible sous unix de gérer un cas d'école comme celui ci de façon native ou s'il était obligé de passer par la case des ACL ?
2) Le fait d'utiliser les ACL est-il recommandé/fiable ou est-ce plus du fun apporté par l'iplementation d'une gestion à la windows NT ?
3) Quel méthode utilisent les vrais pros unix dans le monde de l'entreprise pour la gestion des utilisateurs ?

Je me pose cette question car bien que je ne gere pas une masse d'users (doit y en avoir 3 à tout casser), les droits sont gérés de façon très précise et le nombre d'users peut aller en augmentant.

Merci par avance
@ bientot

Dernière modification par insomniak (Le 21/02/2008, à 16:26)

Hors ligne

#2 Le 23/02/2008, à 14:58

atlante

Re : Droits users : cas d'école

Salut,
pour avoir effectué le même travail (en lycée: 1200 eleves), je sais que c'est prise de tête mais fonctionnel.
Tout se gère avec les droits d'accès et des groupes concentriques.
Il faut définir des groupes pour chaque niveau de dossier, définir les droits d'accès à ces groupes, et attribuer les utilisateurs aux groupes néessaires. (sachant que les répertoires finaux des élèves ne sont lisibles que par eux et les profs).
De plus, un nouveau problème se pose: chaque utilisateur peut modifier les droits des fichiers/dossiers qui lui appartiennent, et donc rendre des fichiers visibles/invisibles aux autres (et même eux même). La solution est d'utiliser dnotify sur le dossier primaire et d'exécuter un script qui va attribuer les droits corrects à tous les dossiers/fichiers, en fonction de l'endroit où ils se trouvent. C'est chaud, mais parfaitement fonctionnel.
La difficulté se trouve principalement dans la représentation mentale de la structure. Après, c'est du simple code.

Hors ligne

#3 Le 23/02/2008, à 19:22

Corner-corner

Re : Droits users : cas d'école

Salut,

sans prétention, je me permets quelques suggestions...

D'abord, tu devrais faire un fichier des données communes appartenant aux classes pour séparer clairement ce qui appartient à une classe de ce qui appartient à un loupiot : /fichiers/home/classes_com_cm? d'un côté et /fichiers/home/*_cm? de l'autre. Ça séparera déjà clairement les données... d'un côté ce qui a vocation a un usage de groupe, de l'autre ce qui est individuel.

Même si tu te dis que la création de /home ne sert à rien... c'est une habitude et c'est là qu'on s'attend à trouver les répertoires des utilisateurs. T'inquiétes pour les tris dont tu pourrais avoir besoin, si tu es rigoureux dans les noms avec "grep" "sort" et des pipes, aucun problème. Si tu veux cloisonner à mort, tu peux toujours faire un /fichiers/home_com et un /fichier/home tout ce qu'il y a de plus basique, mais c'est moins nix je trouve.

Ensuite, tu te limites trop dans la création des groupes. "profs", "eleves" certes... c'est bien pour gérer ton répertoire /fichers/home/recre ... mais aussi des profs groupés en fonction des classes dans lesquelles ils interviennent ("equipe_cm?") même s'il n'y en a qu'un par classe, car ton organisation sera de la sorte tout de suite adaptée à un cas plus général ; et des élèves groupés en fonction de leurs classes... "eleve_cm?"

Voilà, quand à Unix ? mmmmh, qu'est-ce qu'Unix ne pourrait pas faire ? tu peux même mettre en forme le manuel de ta machine à café avec groff si tu veux wink

#4 Le 23/02/2008, à 19:32

Corner-corner

Re : Droits users : cas d'école

Et j'oubliais... un groupe par classe qui contient les profs ET les élèves de la classe.

#5 Le 24/02/2008, à 16:36

Coroner-canard

Re : Droits users : cas d'école

Oulà, j'étais fatigué hier, pas clair du tout...

Alors pour ton problème de droit, quelques notions à retenir :
- Un fichier a en fait deux propriétaires, le proprio que l'on change avec "chown", un groupe avec "chgrp"
- Le propriétaire "own" n'est pas forcément membre du groupe "grp", ce sont deux choses distinctes
- Le propriétaire "own" peut être un groupe d'utilisateur
- Le proprio "own" n'est pas forcément un "user" qui se logge

Pour ton problème particulier

A Stocker les fichiers

- Créer un /fichiers/home
- Créer /fichiers/home/cm. pour les gamins, tu places leurs fichiers perso en fonction de répertoires nommés selon les classes. Ex. pinpin en cm1 a son répertoire dans /fichiers/home/cm1
- Créer /fichiers/home/cm._commnuns pour les fichiers des classes. Ex. La classe de cm2 a ses fichiers dans /fichiers/home/cm2_communs
- Créer /fichiers/home/recre destiné à l'espace propre des minots

B Regrouper

Tu formes les groupes :
- Profs
- Eleves
- Equipe péda (tous les profs d'une même classe)
- Classe (tous les loupiots d'une même classe)

C La propriété, les droits

- La propriété "own" des fichiers dans /fichiers/home/cm. est au gamin ; la propriété "grp" à l'équipe péda de la classe. Tu gères les droits comme t'en a besoin avec "chmod". Par ex le gosse va pouvoir rwx et l'équipe péda de sa classe - son prof seul, s'il n'y en a qu'un donc - rwx pour les autres --- T'as ce que tu voulais : le gamin accède et juste son prof
- La propriété des /fichiers/home/cm._communs est à moduler en fonction de ce que tu veux, t'es pas assez précis. Si par exemple si tu veux qu'un gamin ne puisse accéder qu'aux documents communs de sa classe et pas aux docs communs des autres classes, et que TOUS les profs puissent lire les travaux des classes, même si c'est pas la leur, tu colles en "own" le groupe classe pour les fichiers communs, en "grp" les profs... et tu modules les droits. À toi de voir.
- Pour /recre y'a pas plus simple, tu mets en "own" le groupe "eleve" et en "grp" le groupe eleve wink

Annexe

- Pourquoi multiplier les répertoires dans /fichiers/home ? Parce que d'une part comme je te le disais tu distingue dans l'arborescence les données persos des données communes, et surtout cela va te permettre d'opérer récursivement avec "chown" "chgrp" et "chmod" ce qui est intéressant car avec l'option -R sur ces commandes, quand tu opères sur un répertoire, tu changes le fichier répertoire ET son contenu. Si les documents persos des élèves sont sous les docs de la classe, l'option -R va te poser problème, du moins ça va être gérable mais moins clair à mon avis. Enfin, question de goût...
- Quand tu nommes en Unix, évite les majuscules (fainéantise), les accents (portabilité) et surtout les tirets et les blancs (pour les regexp et pour Bash).
- Il faut penser à automatiser la tâche... donc un script pour gérer les arrivées/départs des gens wink

#6 Le 24/02/2008, à 21:39

insomniak

Re : Droits users : cas d'école

Salut
Très interressant tout ça !
Alors ta description est très bien pour le problème que je rencontre :
On va prendre le point suivant :

- La propriété "own" des fichiers dans /fichiers/home/cm. est au gamin ; la propriété "grp" à l'équipe péda de la classe. Tu gères les droits comme t'en a besoin avec "chmod". Par ex le gosse va pouvoir rwx et l'équipe péda de sa classe - son prof seul, s'il n'y en a qu'un donc - rwx pour les autres --- T'as ce que tu voulais : le gamin accède et juste son prof

Imagines que toi admin tu dois pouvoir acceder à ces fichiers, tu fais comment ?
En fait mon problème est le suivant : on pourrait faire appartenir un utilisateur à plusieurs groupes, ca serait bien... mais là c'est un peu galere...

Hors ligne

#7 Le 24/02/2008, à 21:46

HTL_pas_loggé

Re : Droits users : cas d'école

insomniak a écrit :

Imagines que toi admin tu dois pouvoir acceder à ces fichiers, tu fais comment ?
En fait mon problème est le suivant : on pourrait faire appartenir un utilisateur à plusieurs groupes, ca serait bien... mais là c'est un peu galere...

L'admin (root) a toujours tous les droits sur tous les fichiers du système, quel que soit leur propriétaire, groupe ou mode.

#8 Le 25/02/2008, à 12:51

insomniak

Re : Droits users : cas d'école

Dans le cas ou l'admin n'est pas root par exemple un sous admin quoi... là t'es marron.
J'ai l'impression que je n'ai d'autre choix que d'utiliser les ACL...

Hors ligne

#9 Le 25/02/2008, à 13:12

HymnToLife

Re : Droits users : cas d'école

insomniak a écrit :

Dans le cas ou l'admin n'est pas root par exemple un sous admin quoi... là t'es marron.

sudo ftw!


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#10 Le 25/02/2008, à 13:19

insomniak

Re : Droits users : cas d'école

ftw ? traduction please  ?

Hors ligne

#11 Le 25/02/2008, à 13:33

HTL_pas_loggé

Re : Droits users : cas d'école

http://netforbeginners.about.com/od/blogchatinstantmessaging/f/whatisFTW.htm

#12 Le 25/02/2008, à 13:34

mirmidon

Re : Droits users : cas d'école

Hum, hum,

Je ne comprend pas trop ton problème !

Ce n'est pas très compliqué de créer des utilisateurs pour Unix et de gérer leurs répertoires !

1) Tu crées les groupes d'utilisateurs manuellement puisqu'ils ne sont pas très nombreux.
2) Tu listes dans un fichier de type CSV tous tes utilisateurs avec leurs caractéristiques.
3) Tu fais un script bash qui lis ligne par ligne ce fichier et crée tous les utilisateurs, les répertoires personnels et place chacun dans son groupe.
4) Tu rajoutes les répertoires communs aux différents groupes et tu leur rajoutes les droits associés.

Et voilou...

PS :
A) Il faut créer un groupe par élève (comportement par défaut) num_group_eleve :
- Chaque élève possède son propre répertoire avec ces permissions :
drwxrwx--- num_eleve num_group_eleve
B) Il faut créer un groupe par classe num_group_classe et un compte par professeur, chaque compte professeur ne faisant pas parti du groupe de sa classe :
- Chaque répertoire de classe possède ces permissions :
drwxr-x--- num_prof num_group_classe
C) Il faut créer un groupe eleves que tous les élèves vont posséder
- Le répertoire récré appartient au groupe eleves que chaque élève doit posséder avec ces permissions :
drwxrwx--- superadmin eleves
D) L'utilisateur superadmin dois posséder l'ensemble de tous les groupes créés (mêmes ceux spécifiques à chaque élève).

NB : Faut dire merci à la commande useradd qui fait pas mal de boulot.. wink

Pour résumer :
i) Chaque compte élève fait parti des groupes : num_group_eleve, num_group_classe,eleves.
ii) Chaque compte professeur fait parti du groupe : num_group_prof.
iii) Le compte superadmin fait parti des groupes : chaque num_group_eleve, chaque num_group_classe.

Dernière modification par mirmidon (Le 25/02/2008, à 13:41)


$ sudo make plaisir
Quand l'informatique redevient un plaisir.

The Ubuntu Counter Project - user number #10290

Hors ligne

#13 Le 25/02/2008, à 15:06

Coronaire-corner

Re : Droits users : cas d'école

Désolé Insomniak, j'suis un peu taf' taf',

à la grosse, sur un système qui utilise "sudo", root peut te coller dans le groupe des gens autorisés à agir en prenant l'identité du "root" et bien entendu, il peut limiter les commandes auxquelles les sudoers ont accès pour en faire des mini-roots. Merci pour l'idée "sudo" à Hymne to life (j'aime bien ce pseudo, c'est chouette la vie puisqu'il y a des PC dedans big_smile)... Allez quoi ! RTFM, Insomniak, c'est ça Linux wink

#14 Le 25/02/2008, à 15:09

Canard_coroner

Re : Droits users : cas d'école

Ben, oui, suis trop bête ! Tu mets l'admin dans plusieurs groupes... à la bourrin dans tous... mais en cherchant on doit optimiser. Pas trop le temps de lire mais mirmidon a raison.

#15 Le 25/02/2008, à 15:23

insomniak

Re : Droits users : cas d'école

Merci à tous pour vos indications !
Alors là j'apprend un truc !!!! Un user peut appartenir à plusieurs groupes ??? Euh là va falloir m'expliquer les gars... D'après ce que je sais (ce qui se réduit à pas grand chose hein, faut le voir dans ce sens là et pas l'inverse ^^) un user = un GID (donc un groupe) non ?
Je veux bien RTFM les gars mais j'ai eu beau chercher mon cas d'école dans tous les sens, je ne suis jamais tombé sur un schéma plus ou moins complexe comme le mien. A chaque fois on cause que d'un user pour un groupe et c'est tout. J'avais bien pensé aux users appartenant à plusieurs groupes mais je n'ai jamais trouvé comment faire sad
Une piste svp ? (après je me débrouille c'est pas un pb)
Merci d'avance

Hors ligne

#16 Le 25/02/2008, à 15:33

mirmidon

Re : Droits users : cas d'école

Pour rajouter un utilisateur :

useradd -c "nom complet de l'utilisateur" -b /repertoire_de base -d /repertoire_de_connexion -G groupe1,groupe2,group3 -p mot_de_passe -nm login_utilisateur

NB : les options n et m permettent de créer automatiquement le répertoire de base et le groupe éponyme à l'utilisateur.

PS : Pour plus de détails tape

man useradd

Dernière modification par mirmidon (Le 25/02/2008, à 16:01)


$ sudo make plaisir
Quand l'informatique redevient un plaisir.

The Ubuntu Counter Project - user number #10290

Hors ligne

#17 Le 25/02/2008, à 16:28

insomniak

Re : Droits users : cas d'école

Ecoutes franchement je me sens un peu bebete sur le coup ^^
Autant adduser je m'en sers sans vraiment de probleme, autant je n'avais jamais fait gaffe que l'on pouvait mettre plusieurs groupes à un meme user...
Ca aurait pourtant du me mettre la puce à l'oreille quand dans la config proftpd avec le mod_sql ils disent que l'on peut mettre les groupes séparés par des virgules...
Bon bah ca c'est fait comme dirait l'autre big_smile
Merci pour le tuyau je pense qu'avec ce genre de gestion je vais pouvoir m'en sortir.
@ bientot

Hors ligne

#18 Le 25/02/2008, à 17:00

mirmidon

Re : Droits users : cas d'école

Pour des renseignements très précis voici une très bonne référence :
http://www.labo-linux.org/cours/module-1/chapitre-05-gestion-des-utilisateurs/

A+ wink


$ sudo make plaisir
Quand l'informatique redevient un plaisir.

The Ubuntu Counter Project - user number #10290

Hors ligne

#19 Le 25/02/2008, à 17:36

insomniak

Re : Droits users : cas d'école

Merci, en effet ça a l'air complet ! une bonne douzaine de pages rien que ça ^^
Je lirais ca a tete reposée
@+

Hors ligne

#20 Le 25/02/2008, à 18:49

Crooner_canard

Re : Droits users : cas d'école

Après j'arrête, ça va faire troll. Mais pour revenir à

1) Je me demandais donc s'il était possible sous unix de gérer un cas d'école comme celui-ci de façon native

T'as la réponse je crois smile