Introduction à Linux

Dernière mise à jour : 26/05/2016

Les utilisateurs

D'origine, les systèmes Linux sont multi-utilisateurs. Ainsi, pour pouvoir utiliser une machine, il est nécessaire de s'identifier au moyen d'un nom d'utilisateur et d'un mot de passe. Chacun aura donc son propre compte et son propre environnement. Les possibilités de personnalisation de ce dernier sont assez poussées.

La gestion des droits

Nous verrons dans un chapitre suivant comment Linux gère les droits d'accès au niveau du système de fichier et des ressources.

Les utilisateurs doivent faire partie de groupes. Et c'est l'appartenance à ces groupes qui permettent de recevoir plus ou moins de droits.

À l'origine, Linux était très strict quant à l'autorisation des accès aux ressources. Cette manière de faire est particulièrement bien adapté pour un usage en entreprise où les utilisateurs ne peuvent pas faire n'importe quoi. Aujourd'hui, les règles sont un peu plus souples, ce qui est mieux adapté à l'usage d'ordinateurs familiaux. Cela a fortement inspiré d'autres systèmes d'exploitation plus populaires.

Le super-utilisateur

Il existe un utilisateur spécial appelé "super-utilisateur". Généralement son nom d'utilisateur est root. Cet utilisateur possède tous les droits et a accès à toutes les ressources de la machine.

Il est fortement déconseillé d'utiliser ce compte pour l'utilisation journalière de votre machine. Il s'agit d'un compte qui ne devrait être utilisé que pour la gestion de la machine. Certaines distributions modernes "cachent" d'ailleurs cet utilisateur. Il n'est pas possible de s'identifier avec ce compte, mais il peut être utilisé pour des tâches d'administration.

Un attention particulière doit être portée à la sécurité de cet utilisateur. En effet, si une personne malveillante arrive à craquer ce compte, il peut faire ce qu'il veut de votre machine.

Les fichiers de configuration

Comme pour la plupart des applications sous Linux, la liste des utilisateurs et des groupes sont dans des fichiers texte.

Liste des utilisateurs

La liste des utilisateurs se trouve dans le fichier /etc/passwd. Chaque ligne de ce fichier correspond à un utilisateur. Pour chaque utilisateur le fichier contient toute une série d'informations séparée par un :. Voici la structure de chaque ligne :

username:password:userid:groupid:full_name:home:shell

username
Nom d'utilisateur utilisé pour s'identifier.
password
Mot de passe crypté. À l'origine, le mot de passe se trouvait dans ce fichier. Comme ce dernier peut être lu par tous les utilisateurs du système, il était la cible de tous les pirates. Un mot de passe vide signifiait un compte sans mot de passe. De plus, les mots de passe pouvaient faire l'objet d'une tentative de décryptage. Aujourd'hui, le mot de passe est très souvent x. Cela signifie qu'il faut aller le lire dans le fichier /etc/shadow.
userid
Nombre servant à identifier l'utilisateur par le système.
groupid
Nombre correspondant à l'identifiant du groupe principal de l'utilisateur.
full_name
Nom complet de l'utilisateur.
home
Répertoire personnel de l'utilisateur.
shell
Interpréteur de commande qui sera utilisé lorsque l'utilisateur se connectera en mode console.

Voici un exemple de fichier /etc/passwd.

sebas@*****:~$ ls -la /etc/passwd
-rw-r--r-- 1 root root 3725 jun 20 21:07 /etc/passwd
sebas@*****:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
sebas:x:1000:1000:Sébastien Adam,,,:/home/sebas:/bin/bash

Comme nous l'avons vu précédemment, les mots de passes sont maintenant conservés le plus souvent dans le fichier /etc/shadow uniquement lisible par le super-utilisateur. Pour chaque entrée dans le fichier /etc/passwd dont le mot de passe est x, il faut une entrée correspondante dans ce fichier. La structure de ce fichier est la suivante :

username:password:last_change:min_age:max_age:warning_period:inactivity_period:validity:reserved

username
Nom d'utilisateur correspondant au fichier /etc/passwd.
password
Mot de passe crypté. S'il s'agit d'un ! ou un *, ce compte ne pourra pas être utilisé pour s'identifier.
last_change
Date du dernier changement de mot de passe exprimée en jours depuis le 1er janvier 1970.
min_age
Nombre de jours minimum avant de pouvoir changer de mot de passe.
max_age
Nombre de jours maximum avant de devoir changer de mot de passe.
warning_period
Nombre de jours avant l'expiration du mot de passe où l'utilisateur sera averti qu'il doit changer de mot de passe. Si ce champ est vide ou égal à 0, l'utilisateur ne sera pas averti.
inactivity_period
Nombre de jours après l'expiration du mot de passe où ce dernier est toujours accepté. Pendant cette période, l'utilisateur sera obligé de changer son mot de passe. Si ce champ est vide ou égal à 0, l'utilisateur ne pourra plus se connecter après l'expiration de son mot de passe.
validity
Date à partir de laquelle le compte sera désactivé exprimée en jours depuis le 1er janvier 1970. Si ce champ est vide ou égal à 0, le compte n'expire jamais.
reserved
Champ réservé à un usage ultérieur.

Voici un exemple de fichier /etc/shadow.

sebas@*****:~$ ls -la /etc/shadow
-rw-r----- 1 root shadow 2394 jun 20 21:07 /etc/shadow
root@*****:/home/sebas# cat /etc/shadow
root:!:15466:0:99999:7:::
daemon:*:15453:0:99999:7:::
bin:*:15453:0:99999:7:::
sys:*:15453:0:99999:7:::
www-data:*:15453:0:99999:7:::
backup:*:15453:0:99999:7:::
sebas:mot_de_passe_crypte:15466:0:99999:7:::

Liste des groupes

La liste des groupes se trouve dans le fichier /etc/group. Chaque ligne de ce fichier correspond à un groupe. Pour chaque groupe le fichier contient toute une série d'informations séparée par un :. Voici la structure de chaque ligne :

group_name:password:groupid:user_list

group_name
Nom u groupe.
password
Mot de passe crypté. Ce mot de passe est utilisé pour permettre à un utilisateur de faire partie temporairement de ce groupe. Aujourd'hui, le mot de passe est très souvent x. Cela signifie qu'il faut aller le lire dans le fichier /etc/gshadow sur le même principe que pour les utilisateurs.
groupid
Nombre correspondant à l'identifiant du groupe.
user_list
Liste des utilisateurs faisant partie du groupe séparés par une virgule.