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.
  • root a l’UID 0. Les comptes « système » (ex. www-data, mysql) servent à faire tourner des services.
FichierContenu
/etc/passwdListe des comptes : nom:x:UID:GID:commentaire:dossier:shell
/etc/shadowMots de passe hachés (lisible par root seulement)
/etc/groupGroupes 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/passwd

2. 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 groupe

Un changement de groupe ne s'applique qu'à la prochaine connexion (déconnecte-toi, ou newgrp compta). Erreur classique avec les groupes docker, 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 apache2

3. 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
DroitSur un fichierSur un dossier
r (4)Lire le contenuLister le contenu (ls)
w (2)ModifierCréer / supprimer des fichiers dedans
x (1)ExécuterEntrer dedans (cd)

Notation octale : on additionne

ValeurDroitsUsage typique
7rwxPropriétaire d’un script
6rw-Propriétaire d’un fichier
5r-xDossiers, programmes
4r—Lecture seule
0---Rien
CommandeRésultat
chmod 755 script.shrwx r-x r-x
chmod 644 page.htmlrw- r— r—
chmod 600 ~/.ssh/id_ed25519rw- --- --- (obligatoire pour une clé privée SSH)
chmod 700 ~/.sshrwx --- ---
chmod u+x script.shAjouter 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 web

4. Droits spéciaux (pour info)

DroitEffetExemple
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 dossierDossier 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, SGID

umask (souvent 022) = droits retirés par défaut à la création : fichiers en 644, dossiers en 755.

Voir aussi