Utilisateurs et groupes
Sommaire
Généralités
Ce que l'on nommera ici un utilisateur peut être n'importe qui utilisant un ordinateur. Qu'il se nomme Pierre, Paul, ou Pierpoljak, tout ce qui compte est que l'ordinateur puisse attribuer un nom à l'utilisateur, en effet, c'est nécessairement au travers d'un nom d'utilisateur que l'on accède à un système Linux.
Certains services sont démarrés par l'intermédiaire de comptes utilisateurs, pour certains il s'agira de comptes volontairement limités, en droits, et/ou en ressources. D'autres, à l'inverse, auront des accès privilégiés.
La gestion des utilisateurs est un système de sécurité qui permets de limiter l'accès au système. Seul le super-utilisateur (root) possède un accès complet au système et à sa configuration. Les autres utilisateurs doivent utiliser les utilitaires su, ou sudo pour accéder aux ressources protégées.
Une personne peut très bien avoir plusieurs comptes. Il suffit que ceux-ci utilisent des noms différents. Certains noms sont réservés et ne devraient pas être utilisés (root par exemple).
Les utilisateurs peuvent être rassemblés dans un/ou plusieurs groupes. L'appartenance à celui-ci donne accès aux privilèges qui lui sont associés.
Liste des fichiers
Fichier | Description | Plus d'informations |
---|---|---|
/etc/passwd | Information sur les comptes utilisateurs | man 5 passwd |
/etc/shadow | information cachée sur les comptes utilisateurs | man 5 shadow |
/etc/group | Défini les groupes auxquels les utilisateurs appartiennent | man 5 group |
/etc/gshadow | Information cachée sur les groupes | man 5 gshadow |
/etc/sudoers | Liste de qui peut lancer quoi avec sudo | man 5 sudoers |
/home/* | Répertoires utilisateurs |
Utilisateurs
Les utilisateurs sont stockés dans le fichier /etc/passwd.
cat /etc/passwd
Vous pouvez ajouter un utilisateur à l'aide de la commande useradd :
useradd -m -G groupe1,groupe2 <utilisateur>
Pour définir un mot de passe pour un utilisateur :
passwd <utilisateur>
Pour supprimer un utilisateur :
userdel -r <utilisateur>
L'option -r permet de supprimer le répertoire de l'utilisateur ainsi que son fichier de mails en attente.
Pour ajouter un utilisateur à un groupe existant (sans conserver les anciens groupes auxquels appartient l'utilisateur) :
usermod -G groupe1,groupe2,groupeN user
Pour ajouter un utilisateur à un groupe existant (en conservant les groupes actuels auxquels appartient l'utilisateur) :
usermod -aG groupe1,groupe2,groupeN user
Pour vérifier que l'utilisateur appartient bien à ce groupe :
groups user
Groupes
Les groupes sont disponibles dans le fichier /etc/group. Il est possible de connaître les groupes d'un utilisateur à l'aide de l'une des commandes groups, id ou:
cat /etc/group
Pour en créer un:
groupadd <groupe>
Ajouter un utilisateur au groupe:
gpasswd -a <utilisateur> <groupe>
Il est possible de rajouter plusieurs groupes à un utilisateur:
usermod -aG groupe1,groupe2 <utilisateur>
Pour effacer un groupe:
groupdel <groupe>
Enlever un utilisateur d'un groupe:
gpasswd -d <utilisateur> <groupe>
Groupes sur Arch Linux avant systemd
Avant la migration d'Archlinux vers systemd, les utilisateurs devaient s'ajouter manuellement à ces groupes afin de pouvoir accéder à différents périphériques. Ce comportement a depuis été déprécié en faveur d'udev.
Toutefois, il peut y avoir des exceptions (par exemple autoriser l'accès à un périphérique sans être connecté), d'où les explications suivantes.
Selon les commandes et périphériques utilisés, il peut être nécessaire de faire partie de certains groupes pour avoir certains accès ou permissions.
Groupe | Fichiers | Fonction |
---|---|---|
audio | /dev/audio, /dev/snd/*, /dev/rtc* | Accès au matériel son. |
disk | /dev/[sh]d* | Accès direct au périphérique. Ne surtout pas utiliser, sinon n'importe quel utilisateur peut supprimer les partitions et leurs contenus. |
floppy | /dev/fd* | Si si, on en trouve encore des lecteurs de disquettes. |
log | /var/log/* | Accès à certains logs en lecture |
lp | /etc/cups, /var/log/cups, /var/cache/cups, /var/spool/cups | Accès à l'imprimante |
optical | /dev/s[rg]* | Accès au lecteur optique (cd/dvd). |
root | /* | Super-utilisateur: accès complet au système |
scanner | Accès au matériel scanner | |
sys | Administration du serveur d'impression CUPS | |
systemd-journal | /var/log/journal/* | Accès aux journaux de systemd. |
storage | /dev/sd* | Accès aux périphériques amovibles (ex: clé/disque usb) |
users | groupe de base pour les utilisateurs | |
video | /dev/fb/*, /dev/misc/agpart | Accès aux périphériques de capture vidéo |
wheel | Selon la configuration (sudo, pam), ce groupe peut être utilisé pour donner l'accès root à l'utilisateur. Par défaut, polkit considère les utilisateurs de ce groupe comme étant des administrateurs. |