L03 - Utilisateurs, groupes et droits
Objectif
Créer des comptes, gérer les groupes et
sudo, lire et modifier les permissions (rwx,chmod,chown).
1. Utilisateurs et groupes
- Chaque utilisateur a un UID (numéro), un dossier personnel, un shell.
- Chaque utilisateur appartient à un groupe principal + des groupes secondaires.
roota l’UID 0. Les comptes « système » (ex.www-data,mysql) servent à faire tourner des services.
| Fichier | Contenu |
|---|---|
/etc/passwd | Liste des comptes : nom:x:UID:GID:commentaire:dossier:shell |
/etc/shadow | Mots de passe hachés (lisible par root seulement) |
/etc/group | Groupes et leurs membres |
/etc/sudoers (+ /etc/sudoers.d/) | Qui a le droit d’utiliser sudo |
whoami # qui suis-je ?
id # mon UID, mes groupes
id alice
getent passwd alice # la ligne de alice dans /etc/passwd2. Gérer les comptes
sudo useradd -m -s /bin/bash -c "Alice Martin" alice # -m crée /home/alice
sudo passwd alice # définir son mot de passe
# Debian/Ubuntu proposent aussi "adduser alice" (interactif, plus simple)
sudo usermod -aG sudo alice # Debian/Pop!_OS : droit sudo (groupe "sudo")
sudo usermod -aG wheel alice # Arch : groupe "wheel" (+ décommenter %wheel dans visudo)
sudo usermod -L alice # verrouiller le compte
sudo usermod -U alice # déverrouiller
sudo chage -l alice # infos d'expiration du mot de passe
sudo userdel -r alice # supprimer le compte ET son dossier
sudo groupadd compta
sudo usermod -aG compta alice # -a = AJOUTER (sans -a, on remplace tous ses groupes !)
sudo gpasswd -d alice compta # retirer alice du groupeUn changement de groupe ne s'applique qu'à la prochaine connexion (déconnecte-toi, ou
newgrp compta). Erreur classique avec les groupesdocker,vboxusers,libvirt,wireshark.
Modifier sudoers : toujours avec sudo visudo (vérifie la syntaxe ; une erreur dans ce fichier peut bloquer sudo).
# /etc/sudoers.d/support : le groupe support peut redémarrer apache sans mot de passe
%support ALL=(root) NOPASSWD: /usr/bin/systemctl restart apache23. Lire les permissions
$ ls -l script.sh
-rwxr-x--- 1 alice compta 245 oct. 6 14:02 script.sh
│└┬┘└┬┘└┬┘ │ │
│ │ │ │ │ └── groupe propriétaire
│ │ │ │ └──────── utilisateur propriétaire
│ │ │ └── droits des AUTRES : --- (rien)
│ │ └───── droits du GROUPE : r-x (lire, exécuter)
│ └──────── droits du PROPRIÉTAIRE : rwx (lire, écrire, exécuter)
└────────── type : - fichier, d dossier, l lien
| Droit | Sur un fichier | Sur un dossier |
|---|---|---|
r (4) | Lire le contenu | Lister le contenu (ls) |
w (2) | Modifier | Créer / supprimer des fichiers dedans |
x (1) | Exécuter | Entrer dedans (cd) |
Notation octale : on additionne
| Valeur | Droits | Usage typique |
|---|---|---|
| 7 | rwx | Propriétaire d’un script |
| 6 | rw- | Propriétaire d’un fichier |
| 5 | r-x | Dossiers, programmes |
| 4 | r— | Lecture seule |
| 0 | --- | Rien |
| Commande | Résultat |
|---|---|
chmod 755 script.sh | rwx r-x r-x |
chmod 644 page.html | rw- r— r— |
chmod 600 ~/.ssh/id_ed25519 | rw- --- --- (obligatoire pour une clé privée SSH) |
chmod 700 ~/.ssh | rwx --- --- |
chmod u+x script.sh | Ajouter l’exécution au propriétaire (u=user, g=group, o=others, a=all) |
chmod -R g+w partage/ | Récursif : le groupe peut écrire partout |
sudo chown alice fichier # changer le propriétaire
sudo chown alice:compta fichier # propriétaire ET groupe
sudo chown -R www-data:www-data /var/www/wordpress # cas classique d'un site web4. Droits spéciaux (pour info)
| Droit | Effet | Exemple |
|---|---|---|
SUID (chmod u+s, 4xxx) | Le programme s’exécute avec les droits de son propriétaire | /usr/bin/passwd |
SGID sur un dossier (chmod g+s, 2xxx) | Les nouveaux fichiers héritent du groupe du dossier | Dossier partagé d’un service |
Sticky bit (chmod +t, 1xxx) | Chacun ne peut supprimer que ses fichiers | /tmp |
Exemple : dossier partagé pour le groupe compta
sudo mkdir -p /srv/compta
sudo chown root:compta /srv/compta
sudo chmod 2770 /srv/compta # rwx pour root et compta, rien pour les autres, SGIDumask (souvent 022) = droits retirés par défaut à la création : fichiers en 644, dossiers en 755.