====== Le système des droits d'accès, Principes généraux à comprendre avant... ======
Ce tutorial est écrit à l'intention des personnes qui débarquent de Windows, et que le système de droits d'accès de Linux rebute.

===== A QUOI SERT UN "SYSTEME de DROITS d' ACCES" dans un OS en général ? =====
Il sert à gérer :
  * le PARTAGE des DONNEES entre UTILISATEURS multiples,
  * leur CONFIDENTIALITE, mais aussi
  * la SECURITE des DONNEES et des PROGRAMMES, et donc l'INTEGRITE du système.
  * le CONTROLE d'ACCES aus périphs
  * le LANCEMENT des APPLICATIONS

C'est le point fort de Linux, car d'entrée Unix dont est dérivé Linux a été conçu avec ce principe très sophistiqué et succeptible de s'adapter à toutes les utilisations d'un ordinateur et à toutes les organisations ( une entreprise, un service, la famille).

C'est un peu complexe , et souvent rebutant pour les personnes qui viennent de Windows et souvent seules utilistatrices de leur micro, mais il suffit d'en comprendre le principe général pour le maîtriser au lieu de le subir.

Une configuration de base de ces droits est faite à l'installation pour sécuriser le sytème et permet d'utiliser linux comme on utilise windows en général. Mais il y aura des choses à adapter, parce que Linux ne peut pas deviner quelle organisation vous avez chez vous. Ce sera donc à vous de gérer les droits pour que le sytème réponde à vos besoins.

La notion de droits s'applique aux utilisateurs.

Tout de suite, il vient une question bête : "a quoi ça sert si je suis seul utilisateur de mon micro ?"

C'est mon cas. mais j'y vois trois intêrets :
  * il m'arrive de recevoir mes enfants, d'avoir des invités occasionnels venus tapper un CV, et je n'ai pas envie qu'ils aillent mettre le bazar dans mes dossier. La notion d'utilisateur est donc bien une notion d'utilisateurs différents.
  * je fais des utilisations très différentes de mon micro. ( informatique, gestion personnelle, courriers administratifs, écriture ) et je souhaite sécuriser ces utilisations : lorsque j'écris un roman je ne fais pas de l'informatique et je ne veux rien gérer d'autre... donc la notion d'utilisateur devient une notion d'utilisation.
  * découvrir le sytème de droits de Linux, parce lors d'une prmière expérience j'ai bien galéré avec ça et je n'y comprenais rien.

La notion de droit intervient cependant juste après l'installation. Dans le montage des partitions et des périphériques ( dans la ligne de montage de fstab ) Pour simplifier lors du montage ( ce point sera traité en détail dans un paragraphe ) j'utilise l'option "users" c'est à dire que tous les utilisateurs auront le droit de monter ces périphs (disques, partitons, cdrom...)

Rassurez vous à l'installation je n'ai configuré qu'un seul utilisateur, pour tester ma Suse 9.0 et je reviendrais plus tard sur la configuration des utilisateurs et des droits, lorsque j'aurais réfléchi à mon organisation personelle.

Revenons à Windows quelques instants pour voir comment sont gérés les droits des utilisateurs avec Windows XP.... ( dans les anciennes versions cette notion n'existait même pas... et personne ne pouvait interdire quiconque de faire un format C: )

===== LE SYSTEME DE DROITS DE WINDOXS XP =====
==== Données ====
Microsoft à résolu la confidentialité des données avec un répertoire propre à chaque utilisateur .... jusque là ça va !

Il a résolu le partage des données avec un répertoire unique : dossiers partagés.

Plus simple , tu meurs !!!! Mais si ça marche il faut en voir les inconvénients et vous allez comprendre les avantages de linux !
  * si on met un fichier dans le dossier partagé ( par exemple la compatbilité familiale ) tout le monde y a accès ( même les enfants et leurs copains dans notre exemple ! ) pour faire n'importe quoi sur ce fichier ( lire , écrire, supprimer )
  * si on crée des répertoires différents dans le Dossier " documents partagés " : idem ! TOUS LES UTILISATEURS SANS DISTINCTION, peuvent tout bricoler là dedans, parce que les sytèmes de fichiers de Windows ne savent pas gérer les droits sur les répertoires et les fichiers, hormis cette notion de partage global dans cet unique dossier.
  * si vous ne voulez pas vous faire détruire accidentellement vos originaux tout en voulant les partager, vous devez mettre une copie dans le répertoire "dossier partagé" , mais vous perdez de la place sur le disque en dupliquant ces fichiers, avec tous les problèmes de mise à jour de la copie....
  * enfin windows avec ses systèmes de fichiers FAT et NFTS , ne sait pas gérer les droits (écriture lecture ) , il en est resté à cette unique disposition du Dos : "lecture seulement" pour ne pas écraser accidentellement un fichier. C'est déjà bien, presque suffisant, mais le problème est que n'importe quel utilisateur peut modifier cette protection dès que le fichier est déposé dans le dossier "documents partagés"

==== Système ====
Dans Windows, il y a deux niveaux d'utilisateurs :
  * ceux qui ont uniquement le droit de gérer leurs fichiers personnels et lesdocuments partagés
  * ceux qui ont en plus le droit d'administer le système. C'est un progrès par rapport aux vieilles versions de windows, mais à ce niveau windows est en retard de deux guerres sur Linux.

Avec windows, n'importe quel utilisateur peut lancer n'importe quelle application.

Si vous donnez un jour pour des raisons pratiques votre mdp utilisateur par téléphone à vos enfants pour qu'ils accèdent à vos données perso, si vous êtes administrateur du micro, vos gamins pourront tout faire , y compris formater le disque. Avec linux ça n'arrivera jamais !

Si vous mettez des données ou si vous faites des sauvegardes dans des partitions suplémentaires, comme windows ne gère pas les droits d'accès tous les utilisateurs ont accès à ces partitions précieuses. Avec Linux vous pourrez sélectionner qui a le droit d'accès et pour faire quoi sur cette partition.

Contrôle d'accès aux périphérique :
  * Pas géré sous windows, n'importe qui peut imptimer et graver, toutes les partitions sont accessibles à tout le monde
Controle du lancement des applications :
  * Pas géré sous windows, alors les virus se régalent lorsqu'il srentrent là dedans !!!

Effectivement c'est simple, pour ne pas dire archaïque, mais pas sans inconvénients et sans danger ! c'est pour celà que windows est un sytème plus fragile que linux.

C'est aussi pour celà que tout marche avec windows, et que par contre dans Linux il fait gérer les droits pour faire fonctionner ceratines choses.

Maintenant voyons comment Linux a résolu ces problèmes !

===== Les DROITS d'ACCES sous LINUX ! =====
Juste quelques notions à intégrer mais incontournables ! par contre le système est d'un souplesse inconnue de windows, pourtant fort utile dans le cadre d'une utilisation familiale.

Les DOITS d'ACCES comportent deux notions : QUI et QUOI ?

**Quoi ?**
  * Lire, écrire (ou modifier ou déplacer , ou détruire) un fichier de données, exécuter un programme pour un fichier exécutable. ( dans Linux ils sont symbolisés par "r,w,x"
  * Lire , écrire, et parcourir un répertoire.

**Qui ?**
  * un utilisateur particulier "UTILISATEUR" ou "USER" (au singulier) en anglais
  * un groupe d'utilisateurs défini. "GROUPE"
  * l'ensemble des utilisateurs enregistres "AUTRES" ou "USERS" (au pluriel) en ANGLAIS

Dans Linux on appelle celà les "CLASSES d'UTILISATEURS". ce sont donc trois façons d'accéder aux fichiers de données ou répertoires sur le disque.

Si vous êtes des fans de la base 2 puisque chaque droit est "vrai" ou "faux" et qu'il y a trois classes d'utilisateurs , cela fait 2 puissance ( 3+3) combianisons différentes possibles qui se résument dans un tableau de trois cases par trois cases ( clic droit sur le fichier >propriétés >droits d'accés ) = 64 combinaisons de bases possibles pour accéder un fichier ou un répertoire.

**Oui mais le GROUPE C'est quoi ?**
Vous pouvez en créer autant que vous voulez dans Linux pour résoudre ce dilemme de partage et de confidentilité des données entre les utilisateurs., selon l'organisation familiale ou professionelle, ou personelle que vous gérez : il est possible de créer plus d'un millier de groupes et vous multipliez par autant le nombre de combinaisons possibles, pour accéder à un fichier..

Le GROUPE d'utilisateurs , ne se limite pas à un groupe d'individus.

Dans une utilisation familiale par exemple ces groupes : le couple, la famille entière, les enfants;, les enfants et leurs copains.

La notion de GROUPE même si on enregistre des utilisateurs dans Linux est bien plus subtile et surtout plus puissante :

On peut définir des GROUPES d'utilisateurs (donc les personnes) qui ont accès :
  * à tel FICHIER ou répertoire
  * à tel PERIPH
  * à telle PARTITION
  * à telle APPLICATION

Celà simplifie la gestion des droits : au lieu de raisonner les groupes d'utilisateurs (par exemple un service ou les enfants, vous raisonnez : pour tel périph quel groupe de personnes y aura accès. Le groupe est alors associé au périph ( ou à un dossier, une partition.... )

Exemple familial ( pour illustrer les droits et les groupes de Linux lol ! ) : Qui dans la famille aura le droit de graver et donc d'effacer des Cdroms ?

Ainsi le petit dernier qui joue sur l'ordinateur, ne pourra pas effacer vos cdroms parce que vous ne l'aurez pas mis dans ce groupe.

Ca va encore plus loin en jonglant avec les "droits rwx" de linux et les GROUPES :

Autre exemple : Vous et vos ainés utilisez un compilateur pour faire des programmes.

Vous creéz un groupe pour cette application et seuls les membres de ce groupe auront le droit de lancer une compilation.

Vos enfants vont ils pour autant modifier ou lancer vos programmes ? Non parce que les droits des classes d'utilisateurs sur les répertoires et fichiers où vous mettez vos programmes sont différents.

Essayez de faire la même chose avec Windows.

==== ADMINISTRATION du STSTEME : LINUX ====
Sous Linux il n'y a qu' UN SEUL ADMINISTRATEUR avec son mot de passe unique : le mdp administrateur. il est indépendant des utilisateurs.

Contrairement à Windows où on affecte le droit d'administration du système à un ou plusieurs utilsateurs, par commodité pour compenser l'absence des nortions précitées,

Utilisateur et administrateur en même temps sous windows, vous pouvez faire n'importe quoi dans un moment d' étourderie.... Sous Linux , si vous vous connectez comme utilisateur , vous ne casserez jamais le systême ! vous êtes obligés de rentrer le mdp administrateur root à chaque fois !

Connecté en tant qu'administrateur vous avez absolument tous les droits sur TOUT ( y compris celui de faire des conneries )

===== QUI PEUT MODIFIER le DROITS D'ACCES à un fichier , un répertoire une application ? =====
Petit rappel c'est modifier les droits d 'écriture, lecture d'éxécution d'un programme ou d'exloration d'un repertoire, d'un dossier POUR CHAQUE CLASSE d'UTILISATEUR,...
MAIS AUSSI DEFINIR QUEL GROUPE a accès à ces dossiers ou fichiers de données ou de programmes !

Si les possibilités de linux sont illimitées, là la réponse est beaucoup plus claire et limitée :
  * l'administrateur du sytème avec son mdp root
  * le PROPRIETAIRE du fichier.

===== PROPRIETAIRE d'un FICHIER ? =====
Encore une notion de base fondamentale sous Linux, qui n'existe pas sous Windows.

==== Qui est le propriétaire des FICHIERS DU SYSTEME ( partition root ) ? ====
L'administrateur connecté avec le mdp root, et lui seul. c'est pour celà que vous ne pouvez pas casser votre système Linux "en tant qu'utilisateur", ou en ecécutant un de vos programmes "en tant qu'utilisateur" . ( sous windows en lançant un programme de votre conception, vous pouvez aller crasher n'importe quoi si votre programme comporte une erreur.

==== Qui est le propriétaire des FICHIERS de la PARTION /HOME ====
Dans la partition /HOME chaque utilisateur a son "dossier utilisateur personnel " L'UTILISATEUR est donc "LE PROPRIETAIRE" ( unique ) de son DOSSIER UTILISATEUR dans cette partition commune.

La notion de dossier "documents partagés " n'existe pas sous Linux.

Seul l'utilisateur en tant que PROPRIETAIRE ( et l'administrateur du sytème ) peut MODIFIER les DROITS de ses dossiers inclus dans son dossier personnel et dons DECIDER DU PARTAGE de ses DOSSIERS.

===== PARTAGE DE DONNEES et CONFIDENTIALITE =====
==== DETERMINATION du PARTAGE pour un FICHIER ou un DOSSIER de DONNEES ====
Dans la partition :HOME chaque utilisateur accède à ses propres dossiers dont il est propriétaire par la CLASSE d'UTILISATEUR : "UTILISATEUR".
  * Le PARTAGE "ciblé " ( ou restreint ) se fait par la CLASSE d'UTILISATEUR : "GROUPE"

C'est l'utilisateur qui CHOISIT ( en tant que propriétaire le GROUPE avec lequel il veut partager tel ou tel dossier parmi les groupes qui ont été créés par l'administrateur. l

Les "autres" utilisateurs qui ne font pas partie de ce groupe n'auront donc pas accès aux dossiers en tant que groupe.
  * Le PARTAGE COLLECTIF ( entre tous les utilisateurs ° ) se fait avec la CLASSE d'UTILISATEURS "AUTRES "

Le propriétaire du dossier peut en DEFINISSANT LES DROITS de LECTURE/ECRITURE/ EXECUTION, pour chacune des CLASSES d'UTILSATEUR décider :
  * Ce que "lui même" aura le droit de faire ( par exemple ne pas écrire pour protéger ses donneés d'une manip de destruction accidentelle.
  * Ce que les utilisateurs du groupe pourront faire dans ses dossiers :
  * rien dans son dossier perso ulta confidentiel
  * lire et écrire dans un dossier de travail en commun, le rendre accessible ou non en lecture si ce dossier doit être consultable par tout le monde.
  * lire seulement pour un groupe défini si ce dossier ne regarde pas l'ensemble des utilisateurs

Une application familiale pratique ( et humoristique ! ) : votre album photo sur l'ordi.

De la même façon que vous ne déballez pas tous vos albums photos à tous vos invités, vous pouvez créer des sous dossiers différents qui seront accessibles ( un peu d'humour ! pour finir de découvrir les possibiltés de Linux qui peut s'adpater à tout ! )
  * les photos de votre maitresse ou amant : accessibles en lecture qu'à vous même ! et puis qu'il n'y a que vous qui poyuvez changer les droits sur ce répertoire photo, vous pouvez y aller ! Mais attention si c'est votre conjoint qui est l'adlministrateur.
  * les photos souvenirs d'un petit voyage intime en couple : accessibles en lecture au groupe "couple"
  * les photos de famille ou de vacances ; accessibles au groupe "famille"

Les copains de vos enfants qui viennent jouer avec eux sur l'ordi , n'y auront pas accès, si pour jouer vous avez créé un utilisateur "jeux" qui sera le seul à pouvoir accéder aux jeux présents dans le micro. Vous voyez qu'on peut vraiment tout faire avec les droits de linux et qu'il faut déborder d'imagination pour trouver des exemples pratiques !

La seule limite est qu'on ne peut pas affecter à un dossier, un groupe autorisé à lire et un groupe autorisé à écrire. ce sera forcément un groupe pour écrire et autres donc tout le monde pour lire, via la classe autres.

==== CASCADE des DROITS dans REPERTOIRES et les FICHIERS de votre DOSSIER UTILISATEUR ====
Vous n'avez pas besoin de fixer les droits de chaque fichier, ce serait fastidieux.

Il existe une case pour chaque dossier. "APPLIQUER LES DROITS A L4ENSEMBLE Des SOUS DOSSIERS ET FICHIERS de ce REPERTOIRE"

Ainsi chaque fois que vous créérez un fichier dans votre dossier perso co,fidentiel , ce fichier aura les droits pde confidentialité. et si vous crééz un fichier dans un dossier que vous avez décidé de partager avec tel groupe, il prendra utomatiquement les m^mes droits.

Par contre vous pouvez à l'intérieur d'un répertoire, vous pouvez changer INDIVIDUELLEMENT les droits d'un fichier, exemple : enlever votre droit d"ecriture pour peitéger une copie de sauvegarde d'un fichier.

===== CONTROLE d'ACCES sur les PERIPHS et PARTITIONS SUPPLEMENTAIRES . =====
( à vérifier encore par des manips pour confirmer )

La notion de droits de Linux ne sert plus de gérer la confidentialité ni le partage de données, elle s'élargit à la notion de CONTROLE d'ACCES.

==== Partitions windows ====
Si vous montez une partition FAT 32 ou NFTS, puisque les sytèmes de fichiers windows ne gèrent pas les notions d'utilisateur, de groupes ; il n'est plus possible de gérer la confidentialité , ni le partage des données et c'est tout ou rien !

Alors au montage avec les notions de groupe et des droits de lecture écriture vous pouvez faire du CONTROLE d'ACCES pour empêcher que n'importe quel utilisateur aille bricoler dans vos partitions windows et y faire exécuter des programmes.. ce qui pourrait être catstrophique !

==== Partitions linux ====
Si vous avez des partitions Linux suplémentaires de données, pour des utilistions bien précises, ( votre compta par exemple ) vous retrouvez toute les notions géres par Linux, mais pour assurer la sécurité de ces données vous pouvez faire du contrôle d'accès en définissant quel utilisiateur et quel groupe aura les droit de monter cette partition et pour y faire quoi ? lire écrire, lancer une application....

==== Périphérique ====
Les droits servent à gérer le CONTROLE d'ACCES aux periphs et ils interviennet au MONTAGE du périph.

Au montage vous allez pouvoir définir QUI sera PROPRIETAIRE du PERIPH.

Si vous avez mis comme moi au début par commodité l'option "users" dans la ligne de montage pour le graveur de cd : n'importe quel utilisateur qui se connecte devient alors propriétaire momentané du graveur de cd, c'est partique mais c'est foutu pour faire du CONTROLE d'ACCES sur ce PERIPH.

Il faut donc laisser le ROOT SEUL PROPRIETAIRE et UTILISATEUR du graveur.. ( voir montage de périphs.

Les utilisateurs que vous aurez définis comme ayant accès au groupe "gravage" y auront alors accès par la classe d'utilisateur GROUPE.

Vous gérerez le CONTROLE d'ACCES au graveur en affectant en tant qu'administrateur tel et tel utilisateur dans le groupe gravage.

C'est la solution la plus simple pour gérer efficaement le contrîole d'accès.

Dans la ligne de montage il vous suffira d'écrire une fois pour toutes, que le groupe gravage a le droit de monter ce périph.

===== CONTROLE DU LANCEMENT des APPLICATIONS =====
==== GROUPES SYSTEME ====
=== Groupes root et autres ===
A l'installation des groupes système sont créés pour les besoins du sytème. : exemple le groupe "root" avec l'utilisateur "root" ou le groupe "nobody" avec un utilisateur fantome.

A ne surtout pas toucher, parce qui si vous vous mettez dans le groupe root , vous aurez tous les droits du groupe root (finxès à l'install) et vous allez tout casser dans cette partition root en tant qu'utilisateur..

=== GROUPES APPLICATIONS ===
A l'intstall sont créés des groupes liès aux applications courantes, comme "audio" et dès que vous créez un utilisitateur , il est mis d'office dans ce groupe pour avoir accès à ces apllications. ceci pour vous faciliter la tache. Celà varie selon les distributions..

( je ferais la liste précise )

Ainsi il y a un groupe Cdrom pour le lecteur de cdroms , mais pas de groupes "cdrecoder" pour le graveur...

diablo.gif Ainsi , je me pose encore plein de questions pour faire le tour ce sujet des droits avec les applications .
  * Comment et par qui sont utilisés ces groupes ?
  * Peut on ou doit on y rajouter des utilisateurs pour autoriser des utilisateurs à lancer des applications ?
  * Doit on modifier le groupe fixé à l'intall ( par sécurité ou par défaut ) dans certains répertoires de ces applications pour faire fonctionner des applications qui ne fonctionnent pas en tant qu'utilisateur ?

===== CHANGEMENT DU PROPRIETAIRE ET DU GROUPE =====
Lorsque c'est absolument nécessaire cela se fait en administrateur avec les cdes ; chown et chgrp.

===== LE SUPER UTILISATEUR =====
A approfondir ! mais voilà pour l'instant ce que j'ai capté. mais je ne serais contente que lorsque j'aurais tout compris..

Le super utilisateur , différent de l'administrateur a les mêmes droits que le root, c'est pourquoi il nécessite le mdp root., mais ses droits sont limités

Celà fonctionne également avec le bit SUID dans les droits des fichiers. et par exemple servirait à lancer une application dans son dossier utilisateur , si elle a besoin des droits root pour fonctionner.

[[http://www.alionet.org/| page de Alionet.org]]