Aller au contenu principal

Utilisateurs et groupes


Table des matières

  1. Concept d'utilisateurs Linux
  2. Root vs utilisateur standard
  3. Commandes d'information
  4. Créer et gérer les utilisateurs
  5. Gérer les groupes
  6. Fichiers /etc/passwd et /etc/group


1 - Concept d'utilisateurs Linux

Linux est un système multi-utilisateurs. Chaque utilisateur possède :

  • Un identifiant unique (UID)
  • Un répertoire personnel
  • Des permissions spécifiques

Types d'utilisateurs

TypeUIDUsage
root0Super-administrateur
Système1-999Services et démons
Humains1000+Utilisateurs réels

Pourquoi plusieurs utilisateurs ?

RaisonExemple
SécuritéIsoler les accès
AuditTracer les actions
PermissionsContrôler qui fait quoi
ServicesUn utilisateur par service
info

Chaque service (nginx, mysql, etc.) a généralement son propre utilisateur pour limiter les dégâts en cas de compromission.

🔝 Retour à la table des matières



2 - Root vs utilisateur standard

L'utilisateur root

CaractéristiqueRootUtilisateur standard
UID01000+
Home/root/home/username
Prompt#$
PouvoirIllimitéLimité

Dangers de root

danger

Travailler en root est dangereux !

# Une erreur de frappe peut être catastrophique
rm -rf / home/user # Espace en trop = système détruit !

Bonnes pratiques

À faireÀ éviter
Utiliser sudo ponctuellementSe connecter en root
Créer des utilisateurs dédiésTout faire en root
Limiter les privilègesPartager le mot de passe root

🔝 Retour à la table des matières



3 - Commandes d'information

whoami - Qui suis-je ?

$ whoami
john

id - Informations détaillées

$ id
uid=1000(john) gid=1000(john) groups=1000(john),27(sudo),docker(999)

$ id john
uid=1000(john) gid=1000(john) groups=1000(john),27(sudo)

$ id -u # Juste l'UID
1000

$ id -g # Juste le GID principal
1000

$ id -G # Tous les GIDs
1000 27 999

who - Utilisateurs connectés

$ who
john pts/0 2024-01-15 10:30 (192.168.1.100)
alice pts/1 2024-01-15 11:00 (192.168.1.101)

$ who -a # Informations détaillées

w - Activité des utilisateurs

$ w
10:45:00 up 5 days, 2:30, 2 users, load average: 0.15, 0.10, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
john pts/0 192.168.1.100 10:30 0.00s 0.05s 0.00s w
alice pts/1 192.168.1.101 11:00 5:00 0.02s 0.02s vim file.txt

last - Historique des connexions

$ last
john pts/0 192.168.1.100 Mon Jan 15 10:30 still logged in
alice pts/1 192.168.1.101 Mon Jan 15 11:00 still logged in
john pts/0 192.168.1.100 Sun Jan 14 09:00 - 18:00 (09:00)

$ last -n 5 # 5 dernières connexions

🔝 Retour à la table des matières



4 - Créer et gérer les utilisateurs

useradd - Créer un utilisateur

# Création basique
sudo useradd alice

# Création complète (recommandé)
sudo useradd -m -s /bin/bash -c "Alice Martin" alice
OptionEffet
-mCréer le répertoire home
-sShell de connexion
-cCommentaire (nom complet)
-gGroupe principal
-GGroupes supplémentaires
-dChemin du home personnalisé
-eDate d'expiration

adduser - Alternative interactive (Debian/Ubuntu)

sudo adduser bob
# Assistant interactif qui demande :
# - Mot de passe
# - Nom complet
# - Autres informations
astuce

adduser est plus convivial que useradd sur Debian/Ubuntu. Il crée automatiquement le home et demande le mot de passe.

passwd - Définir le mot de passe

# Définir le mot de passe d'un utilisateur
sudo passwd alice

# Changer son propre mot de passe
passwd

# Verrouiller un compte
sudo passwd -l alice

# Déverrouiller un compte
sudo passwd -u alice

# Forcer le changement à la prochaine connexion
sudo passwd -e alice

usermod - Modifier un utilisateur

# Changer le shell
sudo usermod -s /bin/zsh alice

# Ajouter à un groupe (sans retirer des autres)
sudo usermod -aG docker alice

# Changer le home
sudo usermod -d /home/new_alice -m alice

# Renommer
sudo usermod -l alice_new alice
attention

L'option -aG (append Groups) est cruciale ! Sans le a, l'utilisateur est retiré de tous ses groupes existants.

userdel - Supprimer un utilisateur

# Supprimer l'utilisateur (garde le home)
sudo userdel alice

# Supprimer l'utilisateur ET son home
sudo userdel -r alice

🔝 Retour à la table des matières



5 - Gérer les groupes

Concept de groupes

groupadd - Créer un groupe

# Créer un groupe
sudo groupadd developers

# Créer avec un GID spécifique
sudo groupadd -g 2000 devops

groupmod - Modifier un groupe

# Renommer un groupe
sudo groupmod -n dev developers

# Changer le GID
sudo groupmod -g 2001 devops

groupdel - Supprimer un groupe

sudo groupdel developers

gpasswd - Gérer les membres

# Ajouter un utilisateur au groupe
sudo gpasswd -a alice developers

# Retirer un utilisateur du groupe
sudo gpasswd -d alice developers

# Définir les administrateurs du groupe
sudo gpasswd -A alice developers

groups - Voir les groupes d'un utilisateur

$ groups
john sudo docker

$ groups alice
alice : alice developers docker

🔝 Retour à la table des matières



6 - Fichiers /etc/passwd et /etc/group

/etc/passwd - Base des utilisateurs

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
john:x:1000:1000:John Doe:/home/john:/bin/bash

Structure :

john:x:1000:1000:John Doe:/home/john:/bin/bash
│ │ │ │ │ │ │
│ │ │ │ │ │ └── Shell
│ │ │ │ │ └── Home
│ │ │ │ └── Commentaire (GECOS)
│ │ │ └── GID principal
│ │ └── UID
│ └── Mot de passe (x = dans /etc/shadow)
└── Nom d'utilisateur

/etc/shadow - Mots de passe (chiffrés)

$ sudo cat /etc/shadow
john:$6$xyz...:19000:0:99999:7:::
ChampSignification
1Nom d'utilisateur
2Mot de passe chiffré
3Dernière modification
4Âge minimum
5Âge maximum
6Période d'avertissement
7Période d'inactivité
8Date d'expiration

/etc/group - Base des groupes

$ cat /etc/group
sudo:x:27:john,alice
docker:x:999:john,bob
developers:x:1001:alice,bob,carol

Structure :

developers:x:1001:alice,bob,carol
│ │ │ │
│ │ │ └── Membres
│ │ └── GID
│ └── Mot de passe (rarement utilisé)
└── Nom du groupe

Commandes utiles

# Voir un utilisateur spécifique
grep john /etc/passwd

# Compter les utilisateurs humains (UID >= 1000)
awk -F: '$3 >= 1000 {print $1}' /etc/passwd

# Voir les groupes d'un utilisateur
grep john /etc/group

🔝 Retour à la table des matières



Points clés à retenir

  • Linux distingue root (UID 0), système (1-999) et humains (1000+)
  • Ne jamais travailler en root directement → utiliser sudo
  • useradd -m -s /bin/bash ou adduser pour créer
  • usermod -aG groupe user pour ajouter aux groupes (attention au -a !)
  • /etc/passwd = infos utilisateurs, /etc/shadow = mots de passe
  • Un utilisateur a un groupe principal et peut avoir des groupes secondaires

🔝 Retour à la table des matières


Chapitre suivant : Permissions et droits d'accès →