Polarys

Droits & utilisateurs

Utilisateurs, groupes et sudo

Utilisateurs, groupes et sudo

En PME, votre serveur Linux accueille plusieurs personnes : techniciens, serveur web (www-data), agent GLPI... Chacun a un compte distinct avec des droits précis. Comprendre la gestion des utilisateurs vous permettra de créer des accès sécurisés, de déléguer sans donner les droits root, et de comprendre qui fait quoi sur le système.

Les fichiers clés du système

/etc/passwd : la liste des utilisateurs

cat /etc/passwd | head -5
# root:x:0:0:root:/root:/bin/bash
# daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
# alice:x:1001:1001:Alice Dupont:/home/alice:/bin/bash

Format : nom:x:UID:GID:description:dossier-perso:shell

  • x = mot de passe haché stocké dans /etc/shadow (non lisible sans root)
  • /usr/sbin/nologin = compte de service, ne peut pas se connecter interactivement

/etc/group : les groupes

cat /etc/group | grep sudo
# sudo:x:27:alice,bob

Format : nom-groupe:x:GID:membres

Gérer les utilisateurs

# Créer un utilisateur avec son dossier personnel
adduser technicien2

# Modifier le groupe principal d'un utilisateur
usermod -g webadmin alice

# Ajouter un utilisateur à un groupe supplémentaire
usermod -aG sudo alice     # -a = ajouter (sans -a, remplace les groupes!)
usermod -aG www-data alice

# Lister les groupes d'un utilisateur
groups alice
# alice : alice sudo www-data

# Verrouiller/déverrouiller un compte
usermod -L alice   # Lock
usermod -U alice   # Unlock

# Supprimer un utilisateur
deluser alice
deluser --remove-home alice  # supprime aussi /home/alice

sudo : exécuter sans être root

# Mauvaise pratique
su -          # devient root : dangereux (toutes les commandes s'exécutent en root)

# Bonne pratique
sudo apt update           # exécute une seule commande en root
sudo systemctl restart apache2
sudo -u www-data ls /var/www/   # exécute en tant que www-data

L'avantage de sudo : chaque commande est journalisée dans /var/log/auth.log. On sait qui a fait quoi et quand.

Qui peut utiliser sudo ?

Les utilisateurs listés dans le groupe sudo (Debian/Ubuntu) peuvent utiliser sudo. Vérifiez avec :

groups votre-utilisateur
# votre-utilisateur : votre-utilisateur sudo

Cas concret

Un nouveau technicien rejoint la PME. Vous devez lui créer un compte avec accès sudo mais sans donner le mot de passe root :

# 1. Créer le compte
sudo adduser jean-tech

# 2. Ajouter au groupe sudo
sudo usermod -aG sudo jean-tech

# 3. Vérifier
groups jean-tech
# jean-tech : jean-tech sudo

# 4. Tester (en tant que jean-tech)
sudo whoami
# root  ← sudo fonctionne
graph TD
  ROOT["root (UID 0)<br/>Tous les droits"]
  SUDOGRP["Groupe sudo<br/>alice, jean-tech"]
  WWWDATA["www-data (UID 33)<br/>Service Apache/PHP"]
  NORMAL["bob<br/>Utilisateur standard"]

  SUDOGRP -->|"sudo commande"| ROOT
  WWWDATA -->|"Accès /var/www/"| FILES["Fichiers web"]
  NORMAL -->|"Accès limité à /home/bob"| HOMEDIR["/home/bob"]

Erreurs fréquentes

  • Oublier -a dans usermod -aG : sans -a, la commande remplace tous les groupes de l'utilisateur par le seul groupe spécifié.
  • Travailler directement en root (su -) : si vous faites une erreur, pas de filet de sécurité. sudo commande par commande est bien plus sûr.
  • Supprimer un utilisateur sans vérifier les processus en cours : ses processus actifs peuvent planter des services.

À retenir

  • /etc/passwd liste les utilisateurs ; /etc/group liste les groupes.
  • usermod -aG groupe utilisateur ajoute sans écraser les autres groupes.
  • sudo = exécuter une commande en root avec traçabilité : préférer à su -.

Mini-exercice

Tapez groups $(whoami) pour voir vos groupes. Puis cat /etc/passwd | grep $(whoami) pour voir votre entrée dans la base des utilisateurs. Notez votre UID et GID.

Quiz de validation

Quiz - 6 questions

1. Que contient le fichier /etc/passwd ?

2. Quelle option de usermod permet d'ajouter un utilisateur à un groupe supplémentaire SANS supprimer ses autres groupes ?

3. Pourquoi est-il préférable d'utiliser sudo plutôt que 'su -' pour les tâches d'administration ?

4. Quelle commande crée un utilisateur 'jean-tech' avec son dossier personnel sous Debian ?

5. Un technicien quitte l'entreprise. Quelle commande supprime son compte ET son dossier personnel ?

6. Un technicien fait 'usermod -G sudo alice' (sans -a). Quel est l'effet inattendu ?

Suis ta progression

Crée un compte gratuit pour suivre ta progression et accéder à toutes les leçons.