Aller au contenu

Utilisateurs

I. Introduction⚓︎

Les comptes utilisateurs

Un système d’exploitation de type Unix est un système d’exploitation multi-tâches et multi-utilisateurs. Cela signifie que sur une même machine plusieurs personnes peuvent travailler simultanément.

Le système doit donc pouvoir gérer plusieurs utilisateurs en même temps en assurant à la fois le partage des ressources (espace disque, utilisation de la mémoire, périphériques, etc), la confidentialité des données de chaque utilisateur et bien sûr l’intégrité de l’arborescence des répertoires et des fichiers.

Puisque plusieurs personnes peuvent être connectées en même temps le système doit pouvoir identifier clairement chacun des utilisateurs ainsi que les ressources auxquelles ils ont accès et plus généralement qui a le droit de faire quoi.

Ainsi, chaque personne autorisée à utiliser un système de type Unix se voit attribuer un compte utilisateur. Il existe un ensemble de règles qui régissent ce qu’un utilisateur a le droit de faire.

II. Les différents utilisateurs⚓︎

Le super-utilisateur et les autres

Il y a deux types d’utilisateurs, comme le montre la figure ci-dessous :

groupes

  • Un super-utilisateur qui a le droit de faire tout ce qu’il veut sur le système, absolument tout : crĂ©er des utilisateurs, leur accorder des droits, supprimer des utilisateurs, avoir accès Ă  leurs donnĂ©es, modifier le système. Ce super-utilisateur s’appelle root. Cet utilisateur c’est l’administrateur du système.
  • Et les autres utilisateurs. Ceux-lĂ  n’ont qu’une possibilitĂ© d’action limitĂ©e et surtout pas la possibilitĂ© de modifier le système. Ces utilisateurs peuvent ĂŞtre rĂ©partis dans diffĂ©rents groupes

se connecter Ă  un compte utilisateur

Pour être identifié sur un système de type Unix, il faut posséder un compte utilisateur, créé par le super-utilisateur, et caractérisé par un identifiant de compte et un mot de passe.

👉 Pour se connecter sur le système par une console et ouvrir une session de travail, il faut entrer son identifiant à l’invite login puis son mot de passe à l’invite passwd .

🌵 Afin de rester confidentiel, la saisie du mot de passe se fait en aveugle.

utilisateur id : uid

👉 En plus de son identifiant de compte, chaque utilisateur est identifié par un numéro unique uid (user identifier) et appartient à un groupe principal gid (group identifier) et éventuellement à des groupes secondaires d’utilisateurs.

👉 Le groupe principal est utilisé par le système en relation avec les droits d’accès aux fichiers. Chaque utilisateur doit appartenir à un groupe principal.

👉 Les groupes secondaires sont les autres groupes auxquels un utilisateur appartient. Un utilisateur peut au maximum appartenir à 1024 groupes secondaires.

👉 Pour connaître son uid et les groupes auxquels on appartient, on peut utiliser la commande id (identity).

Exemple

ID

Dans cet exemple, l’identifiant de compte de l’utilisateur porte le nom john, son numéro d’identification est 1000, son groupe principal est le groupe python identifié par le numéro 1000. On voit aussi qu’il appartient à plusieurs groupes secondaires de gid 4, 24, 27 et 118

Le fichier /etc/passwd

C’est dans ce fichier que se trouvent les informations de connexion de tous les utilisateurs du système. Il s’agit d’un fichier texte où chaque ligne correspond à un utilisateur. Cette ligne est composée de sept champs séparés par le caractère ": " comme le montre la figure suivante.

etc

Les informations présentes sur cette ligne sont, dans l’ordre :

  • l’identifiant de compte que communĂ©ment on appelle aussi le nom de l’utilisateur
  • le mot de passe cryptĂ© pour cet utilisateur (sur certain systèmes ce champ ne contient pas le mot de passe cryptĂ© mais le caractère ’x’ qui indique que le mot de passe est stockĂ© ailleurs dans un fichier /etc/shadow visible uniquement par le super-utilisateur, si ce champ est vide cela signifie que l’utilisateur n’a pas de mot de passe) ;
  • l’uid de l’utilisateur ;
  • le gid de son groupe principal ;
  • un champ, appelĂ© gcos , rempli librement par l’utilisateur et qui contient la description de l’utilisateur ;
  • le rĂ©pertoire personnel de l’utilisateur (home directory). Habituellement le nom de ce rĂ©pertoire est /home/login , avec login l’identifiant de compte ;
  • le shell de connexion de l’utilisateur, c’est-Ă -dire le shell utilisĂ© par l’utilisateur lorsqu’il ouvre une session. (Il existe d’autres types de shell que celui du Bash.)

Le fichier /etc/shadow

Ce fichier, s’il existe, contient les mots de passe cryptés de tous les utilisateurs, il n’est visible que par le super-utilisateur. Chaque ligne de ce fichier texte est associée à un utilisateur et contient un certain nombre de champs d’information que le super-utilisateur peut renseigner pour la gestion des comptes : la date à laquelle le mot de passe a été modifié pour la dernière fois, le nombre de jours avant expiration du mot de passe, le nombre de jours restant avant le prochain changement obligatoire du mot de passe, le nombre de jours pendant lesquels le compte reste actif après expiration du mot de passe, la date de désactivation du compte.

Remarque : le système installé sur la Weblinux qui accompagne le TP suivant ce cours n’a pas de fichier /etc/ shadow , le mot de passe crypté est donc stocké dans le fichier /etc/passwd .

Le fichier /etc/group

C’est grâce à ce fichier texte qu’un système de type Unix peut gérer des groupes d’utilisateurs. Chaque ligne correspond à un groupe. Une ligne est composée de champs séparés par : .

  • le nom du groupe ;
  • le mot de passe du groupe (ce champ est rarement utilisĂ©, par contre s’il est renseignĂ© un utilisateur du groupe qui veut accĂ©der Ă  une ressource appartenant au groupe devra saisir ce mot de passe) ;
  • le numĂ©ro unique d’identification du groupe ;
  • la liste des utilisateurs qui appartiennent au groupe.

III. Gestion des utilisateurs et des groupes⚓︎

Environnement de travail

Les systèmes de type "UNIX" sont des systèmes multi-utilisateurs, plusieurs utilisateurs peuvent donc partager un même ordinateur, chaque utilisateur possédant un environnement de travail qui lui est propre.

Les groupes d'utilisateurs

Chaque utilisateur possède certains droits lui permettant d'effectuer certaines opérations et pas d'autres. Le système d'exploitation permet de gérer ces droits très finement. Un utilisateur un peu particulier est autorisé à modifier tous les droits : ce super utilisateur est appelé administrateur ou plus communément, root. L'administrateur pourra donc attribuer ou retirer des droits aux autres utilisateurs.

Au lieu de gérer les utilisateurs un par un, il est possible de créer des groupes d'utilisateurs. L'administrateur attribue des droits à un groupe au lieu d'attribuer des droits particuliers à chaque utilisateur. Comme nous venons de le voir, chaque utilisateur possède des droits qui lui ont été octroyés par le "super utilisateur".

r w x

Nous nous intéresserons ici uniquement aux droits liés aux fichiers, mais vous devez savoir qu'il existe d'autres droits liés aux autres éléments du système d'exploitation ((imprimante, installation de logiciels...). Les fichiers et les répertoires possèdent 3 types de droits :

  • les droits en lecture (symbolisĂ©s par la lettre r) : est-il possible de lire le contenu de ce fichier ?
  • les droits en Ă©criture (symbolisĂ©s par la lettre w) : est-il possible de modifier le contenu de ce fichier ?
  • les droits en exĂ©cution (symbolisĂ©s par la lettre x) : est-il possible d'exĂ©cuter le contenu de ce fichier ? (quand le fichier du code est exĂ©cutable)

u g o

Il existe 3 types d'utilisateurs pour un fichier ou un répertoire :

  • le propriĂ©taire du fichier (par dĂ©faut c'est la personne qui a crĂ©Ă© le fichier), il est symbolisĂ© par la lettre u
  • un fichier est associĂ© Ă  un groupe, tous les utilisateurs appartenant Ă  ce groupe possèdent des droits particuliers sur ce fichier.
    Le groupe est symbolisé par la lettre g
  • tous les autres utilisateurs (ceux qui ne sont pas le propriĂ©taire du fichier et qui n'appartiennent pas au groupe associĂ© au fichier).
    Ces utilisateurs sont symbolisés par la lettre o (other).

Lecture des droits

Il est possible d'utiliser la commande ls avec l'option ls -l afin d'avoir des informations supplémentaires.

Nous sommes positionnés dans le répertoire Arbres et nous avons exécuté la commande ls -l

permissions 1

Lisons cette ligne de gauche Ă  droite :

-rw-r--r--

  • le premier symbole - signifie que l'on a affaire Ă  un fichier, dans le cas d'un rĂ©pertoire,nous aurions un d (directory)
  • les 3 symboles suivants rw- donnent les droits du propriĂ©taire du fichier : lecture autorisĂ©e (r), Ă©criture autorisĂ©e (w), exĂ©cution interdite (- Ă  la place de x)
  • Les 3 symboles suivants r-- donnent les droits du groupe liĂ© au fichier : lecture autorisĂ©e (r), Ă©criture interdite (- Ă  la place de w), exĂ©cution interdite (- Ă  laplace de x)
  • Les 3 symboles suivants r-- donnent les droits des autres utilisateurs : lecture autorisĂ©e (r), Ă©criture interdite (- Ă  la place de w), exĂ©cution interdite (- Ă  la place de x)

droits 2

Un peu plus loins sur la ligne :

  • Le caractère suivant "1" donne le nombre de liens (nous n'Ă©tudierons pas cette notion ici)
  • Le premier "user" reprĂ©sente le nom du propriĂ©taire du fichier
  • Le second "user" reprĂ©sente le nom du groupe liĂ© au fichier
  • Le "0" reprĂ©sente la taille du fichier en octet (ici notre fichier est vide)
  • Feb 20 14:59 donne la date et l'heure de la dernière modification du fichier
  • bouleau.txt est le nom du fichier

La commande chmod

Il est important de ne pas perdre de vu que l'utilisateur root a la possibilité de modifier les droits de tous les utilisateurs. Le propriétaire d'un fichier peut modifier les permissions d'un fichier ou d'un répertoire à l'aide de la commande chmod.

Pour utiliser cette commande, il est nécessaire de connaitre certains symboles :

  • Les symboles liĂ©s aux utilisateurs : u correspond au propriĂ©taire, g correspond au groupe liĂ© au fichier (ou au rĂ©pertoire), o correspond aux autres (other) utilisateurs et a (all) correspond Ă  "tout le monde" (permet de modifier u, g et o en mĂŞme temps)
  • Les symboles liĂ©s Ă  l'ajout ou la suppression des permissions : + on ajoute une permission, - on supprime une permission, = les permissions sont rĂ©initialisĂ©es (permissions par dĂ©faut)
  • Les symboles liĂ©s aux permissions : r : lecture, w : Ă©criture, x : exĂ©cution.

👉 La commande "chmod" a cette forme : chmod [u g o a] [+ - =] [r w x] nom_du_fichier

Exemples

  • Un premier exemple : chmod o+w toto.txt attribuera la permission "Ă©criture" pour le fichier toto.txt aux autres utilisateurs.

  • Un second exemple : l'utilisateur user travaille dans son rĂ©pertoire home (/home/user). Il crĂ©e avec touch un fichier exemple, et liste le contenu de son rĂ©pertoire home.

touch

Il change ensuite les permissions, pour rendre le fichier exécutable pour lui même (mais pas pour les autres utilisateurs du groupe ou hors groupe) et liste à nouveau le contenu du répertoire courant :

chmod

Question

On a ceci :

fleurs 1

Comment modifier les permissions associées au fichier pour que tout le monde ait la permission lecture et écriture ? On doit obtenir les droits indiqués ci-dessous :

fleurs 2

Solution

chmod a+rw hortensia.txt