Utilisateurs

De Justine's wiki
Aller à la navigation Aller à la recherche

Linux : Gestion des utilisateurs et groupes

Utilisateur

Un utilisateur Linux est défini par un couple login-mdp, un dossier personnel, l'appartenance à des groupes, et des droits en écriture/lecture/exécution spécifiques. Il existe différents types d'utilisateurs:

  • Les utilisateurs limités
  • Root

Groupes

Un groupe est un ensemble d'utilisateurs partageant des fichiers et des répertoires. Il en existe deux types:

  • Primaires (initiaux): Groupe par défaut d'un utilisateur, qui porte son nom; créé en même temps que son login. On peut en changer mais pas être orphelin.
  • Secondaires : groupes supplémentaires.

Pour ajouter un utilisateur au groupe des sudoers:

sudo adduser login sudo #Ou login est le nom de l'utilisateur

Les trois fichiers de configuration importants par rapport aux utilisateurs sont:

-/etc/passwd : chaque ligne contient des informations détaillées sur un utilisateur (login, UID, home...)
-/etc/shadow : contient les mots de passe hashés
-/etc/group : contient la liste des groupes avec leur membres

 

Fichier passwd

Un examen de ce fichier me donne:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

[...]

justine:x:1000:1000:Justine,,,:/home/justine:/bin/bash

La dernière ligne me donne le nom de mon utilisateur, avec des champs séparés par ":"; voici chaque champ:

  • login
  • mots de passe, avec un x car ils sont dans shadow
  • UID, ici 1000
  • GID du groupe de l'utilisateur, ici 1000 aussi
  • Nom complet GECOS
  • Home
  • Interpréteur de commandes

Les utilisateurs de services ont moins d'éléments, mais le schéma reste le même.

 

Le fichier Shadow

root:!:17808:0:99999:7:::
daemon:*:17737:0:99999:7:::
bin:*:17737:0:99999:7:::
sys:*:17737:0:99999:7:::
sync:*:17737:0:99999:7:::
games:*:17737:0:99999:7:::
man:*:17737:0:99999:7:::
lp:*:17737:0:99999:7:::
mail:*:17737:0:99999:7:::
[[[1]]]:::
uucp:*:17737:0:99999:7:::

[...]

justine:$6$hKjtbqIS$8vlyqhW977ds6d8bK/Bkuat8OfVbet1uGY8DgoRDqcUZCAZ.ED9pUQHb/ZaUcOyQxGy3tl6nBubtS/wwifcRZ1:17808:0:99999:7:::

  • Login
  • Hash du mot de passe
  • Nombre de jours depuis le changement de mots de passe en temps UNIX (1er janvier 1970)
  • Nombre de jours avant de pouvoir le changer
  • Nombre de jours avant de devoir changer de mdp (99999)
  • Nombre de jours avant la fin de validité du mot de passe

 

Création d'utilisateurs

sudo adduser alice

 Permet de créer l'utilisteur Alice (il existe aussi useradd, plus adapté pour les scripts car pas interactif).

 

Suppression d'utilisateurs

sudo deluser Alice

 Sans option, cette commande laisse des traces. On peut ajouter par exemple --remove-home

 

Changer les groupes, les login

sudo usermod -g groupe1 Alice #Changer le groupe d'appartenance d'Alice
sudo usermod -aG groupe1, groupe2 Alice #Ajoute Alice dans ces groupes sans l'enlever de son groupe de base
sudo usermod -l Alice-Nouveau-Login Alice  #Transforme Alice en Alice-Nouveau-Login

NB : Pour que les changements de groupes soient effectifs, il faut se déco/reco

Gérer les groupes

Les groupes sont gérés par le fichier /etc/group:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,justine
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:

      [...]

  •  Nom du groupe
  • Mot de passe du groupe, inscrit avec un x car dans shadow
  • GID
  • Liste des utilisateurs présents dans le groupe

Créer / supprimer des groupes

sudo addgroup Groupe #Créer un groupe

sudo delgroup MonGroupe #Supprime un groupe, group del existe aussi

 

Lister les groupes

justine@Justine-pc:~$ id
uid=1000(justine) gid=1000(justine) groups=1000(justine),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)

Cette commande est assez explicite, elle me donne les groupes auxquels j'appartient. On a aussi: 

justine@Justine-pc:~$ groups justine
justine : justine adm cdrom sudo dip plugdev lpadmin sambashare