Les droits des utilisateurs
Gestion des utilisateurs
La gestion des droits est un point crucial de l’administration de votre système d’exploitation Ubuntu. Elle est fortement liée au système de fichiers (car rappelez-vous qu’Unix est construit autour des systèmes de fichiers) et c’est pourquoi vous trouvez ici beaucoup de manipulations en mode console.
Une erreur dans les droits et c’est toute la sécurité de votre installation qui est en jeu.
1. Principe
a. Linux en général
Les utilisateurs sont référencés par :
-
un login, ou nom de connexion,
-
un UID (User ID), identifiant numérique unique de l’utilisateur, codé sur 32 bits,
-
un GID (Group ID), identifiant du groupe principal auquel appartient l’utilisateur,
-
divers autres groupes secondaires.
Ces informations sur votre compte utilisateur sont obtenues avec la commande id. Dans l’exemple ci-dessous, l’utilisateur eni a comme uid 1000 et comme gid 1000. Il fait partie d’un grand nombre de groupes.
$ id
uid=1000(eni) gid=1000(eni)
groupes=1000(eni),4(adm),24(cdrom),27(sudo),30(dip),
46(plugdev),122(lpadmin),134(lxd), 135(sambashare)
Les utilisateurs ont des droits sur tout ce qui leur appartient et sur ce qui appartient à leurs groupes.
Une commande est exécutée avec les droits de l’utilisateur.
Les informations sur les comptes locaux sont stockées dans /etc/passwd et /etc/shadow. Les groupes sont dans /etc/group et /etc/gshadow.
Le mot de passe, chiffré, est le deuxième champ de chaque ligne du fichier /etc/shadow. Seul l’administrateur peut lire le contenu de ce fichier.
L’administrateur du système est appelé root et porte toujours l’UID 0. Il est le seul, sauf mécanismes spécifiques, à pouvoir exécuter les tâches administratives les plus...
Droits des utilisateurs
Le mécanisme permettant au système d’être multi-utilisateur induit un accès sélectif et des niveaux de protection sur les fichiers. Le principe de base s’énonce ainsi : le propriétaire d’un fichier en définit les droits d’accès. Tout fichier ou répertoire sur Ubuntu appartient à un utilisateur et à un groupe.
1. Utilisateurs et attributs de fichiers
a. Principes
Sous Ubuntu Linux, voici l’identification des types d’utilisateurs :
-
Le propriétaire du fichier, noté user.
-
Le groupe d’appartenance du propriétaire, noté group.
-
Les autres ou le reste du monde, noté other.
Pour visualiser l’appartenance d’un fichier, la commande ls avec l’option -l (format long) montre pour chaque fichier un ensemble d’informations associées.
Exemple
touch essai.txt
ls -l essai.txt
La première commande crée un fichier texte vide. Les deux commandes sont effectuées par l’administrateur (rappelons que le créateur du fichier est le propriétaire) :
-rw-r--r-- 1 root root 0 sept 24 16:21 essai.txt
Le premier bloc de dix caractères informe de la signification des droits définis sur le fichier :
-
La première lettre donne l’indication du type de fichier. Les plus courantes sont :
-
un - (tiret) pour l’attribut d’un fichier ordinaire,
-
un d pour un répertoire,
-
un l (lettre L) pour les liens symboliques.
-
Les trois lettres suivantes indiquent le propriétaire avec dans l’ordre :
-
r ou - (droit en lecture ou non),
-
w ou - (droit en écriture ou non),
-
x ou - (droit en exécution ou non).
-
Les trois lettres suivantes donnent exactement la même signification mais pour le groupe.
-
Les trois dernières lettres s’appliquent...
Gestion avancée des utilisateurs
1. Sécurité des mots de passe
a. Changer de mot de passe
La commande passwd permet de gérer les mots de passe mais aussi les autorisations de connexion et la plupart des champs présents dans /etc/shadow.
Tout utilisateur a le droit de changer son mot de passe, dans le délai indiqué par le champ 4 de /etc/shadow. L’ancien mot de passe est demandé par sécurité (notamment pour empêcher une personne malintentionnée de modifier votre mot de passe). La saisie est masquée.
$ id
uid=1000(eni) gid=100(users) ...
$ passwd
Changement du mot de passe pour eni.
Ancien mot de passe :
Nouveau mot de passe :
Retaper le nouveau mot de passe :
Mot de passe changé.
Les modules PAM (Pluggable Authentication Module) peuvent imposer des contraintes plus ou moins sévères pour le choix du mot de passe : de telle longueur, pas basé sur un mot du dictionnaire, etc. Voyez ce qu’il se passe en tentant d’utiliser successivement toto (trop court), azerty (trop simple) et Martine (dictionnaire) :
$ passwd
Changement du mot de passe pour eni.
Mot de passe actuel :
Nouveau mot de passe :
MOT DE PASSE INCORRECT : Le mot de passe comporte moins de 8 caractères
Nouveau mot de passe :
MOT DE PASSE INCORRECT : Le mot de passe ne passe pas la vérification dans
le dictionnaire - trop simple/systématique
Nouveau mot de passe :
MOT DE PASSE INCORRECT : Le mot de passe ne passe pas la vérification dans le dictionnaire - basé sur un mot du dictionnaire
passwd: Nombre maximum de tentatives épuisées pour le service
L’utilisateur root a le droit de modifier les mots de passe de tous les utilisateurs du système sans...
Mise en pratique
1. Gestion des utilisateurs
En mode console
Passez en mode root interactif.
Créez un nouveau groupe d’utilisateurs nommé visiteurs et ayant pour groupid 1404.
Créez un nouvel utilisateur nommé invite ayant pour userid 140401, appartenant au groupe précédemment créé en forçant la création de son répertoire de login et de son shell bash.
Affichez les lignes correspondantes des fichiers utilisateurs et groupes.
Modifiez les droits de cet utilisateur en forçant le changement de mot de passe à trois mois, un délai de grâce d’une semaine et de prévenance de deux semaines.
Affichez la ligne correspondante dans le fichier des droits.
Affectez-lui le mot de passe welc0me.
Créez un nouvel utilisateur nommé intrus ayant pour userid 140402, appartenant au groupe précédemment créé en forçant la création de son répertoire de login et de son shell bash. Affectez-lui les mêmes contraintes d’expiration de mot de passe que précédemment. Affectez-lui le mot de passe de votre choix.
Affichez les deux dernières lignes de /etc/shadow. Notez les différences.
luc@Stuby:~$ sudo -i
[sudo] password for luc:
root@Stuby:~# groupadd -g 1404 visiteurs
root@Stuby:~# useradd -m -u 140401 -g visiteurs -s /bin/bash invite
root@Stuby:~# tail -1 /etc/group
visiteurs:x:1404:
root@Stuby:~# tail -1 /etc/passwd
invite:x:140401:1404::/home/invite:/bin/bash
root@Stuby:~# passwd -x 90 -w 14 -i 7 invite
passwd : expiration du mot de passe modifiée.
root@Stuby:~# tail -1 /etc/shadow
invite:!:16288:0:90:14:7::
root@Stuby:~# passwd invite
Entrez le nouveau mot de passe :
Retapez le nouveau...