Droits d’Accès, Utilisateurs & Système

Linux
Système & Réseau
Décoder les permissions UNIX (drwxr-xr-x), maîtriser chmod et chown, administrer les utilisateurs/groupes avec sudo et inspecter le matériel (dmesg, lspci, lsusb).

Dès sa conception dans les années 1970, UNIX a été pensé comme un système multi-utilisateurs. Plusieurs ingénieurs pouvant partager simultanément le même serveur, chaque fichier et chaque répertoire possède un verrou de sécurité strict définissant qui a le droit de le lire, de le modifier ou de l’exécuter.

🔑 Décoder la Chaîne des Droits d’Accès (drwxr-xr-x)

Lorsque vous exécutez ls -l, la toute première colonne affiche une chaîne de 10 caractères telle que drwxr-xr-x. Elle se lit en 4 blocs distincts (1 + 3 + 3 + 3) :

 d   rwx   r-x   r-x
─── ───── ───── ─────
 1    2     3     4
Type du Nœud

Le 1er caractère indique la nature de l’entrée :

  • - : Fichier standard
  • d : Dossier (Directory)
  • l : Lien symbolique (Link)
User (u)

Les caractères 2 à 4 définissent les droits du propriétaire unique du fichier (affiché en 3e colonne de ls -l).

Group (g)

Les caractères 5 à 7 s’appliquent aux membres du groupe propriétaire du fichier (4e colonne de ls -l).

Others (o)

Les caractères 8 à 10 concernent tous les autres utilisateurs du système qui ne sont ni le propriétaire, ni dans le groupe.

📊 La Signification Exacte de r, w, x (Fichier vs Dossier)

Une erreur classique consiste à croire que les lettres r, w et x ont exactement le même effet sur un fichier et sur un répertoire :

Symbole Nom & Valeur Octale Effet sur un Fichier (-) Effet sur un Dossier (d)
r Read (Lecture = 4) Lire le contenu du fichier (cat, bat). Lister les noms des fichiers contenus dans le dossier (ls).
w Write (Écriture = 2) Modifier ou vider le contenu du fichier. Créer, renommer ou supprimer des fichiers à l’intérieur du dossier (touch, rm, mv).
x eXec (Exécution = 1) Exécuter le fichier comme un programme ou un script. Indispensable pour explorer/traverser le dossier (cd dossier) et accéder à ses sous-éléments !
- Aucun droit (0) Permission refusée (Permission denied). Permission refusée (Permission denied).

🧮 Modifier les Droits (chmod) et le Propriétaire (chown)

Deux commandes permettent d’administrer les permissions d’un nœud :

  • chmod (Change Mode) : Modifie les droits d’accès soit en notation octale (en additionnant 4 pour r, 2 pour w et 1 pour x pour chaque bloc), soit en notation symbolique (u/g/o/a suivi de +, - ou =) :

    # Notation octale : User=7 (4+2+1=rwx), Group=5 (4+0+1=r-x), Others=5 (4+0+1=r-x)
    chmod 755 deploy.sh
    
    # Notation symbolique : ajouter (+) le droit d'exécution (x) au propriétaire (u)
    chmod u+x deploy.sh
    
    # Retirer (-) le droit d'écriture (w) au groupe (g) et aux autres (o)
    chmod go-w settings.ini
  • chown (Change Owner) : Modifie l’utilisateur propriétaire et/ou le groupe propriétaire d’un fichier :

    # Changer uniquement le propriétaire
    sudo chown student rapport.txt
    
    # Changer simultanément le propriétaire ET le groupe (avec -R pour tout un dossier)
    sudo chown -R student:www-data /var/www/webapp

🧪 Calculateur Interactif de Permissions chmod

Cochez ou décochez les droits ci-dessous pour calculer en temps réel la notation UNIX (rwxr-xr-x), la valeur octale (755) et la commande chmod associée :

Simulateur & Calculateur chmod

  • Propriétaire (User) :
  • Groupe (Group) :
  • Autres (Others) :
Diagnostic des Permissions

👑 Sessions, Utilisateurs et Élévation sudo

Pour administrer les comptes d’un serveur et exécuter des opérations réservées à l’administrateur root, Linux fournit un ensemble de commandes dédiées :

Identité & Privilèges (whoami, su, sudo)
  • whoami : Affiche le nom de l’utilisateur courant.
  • w : Affiche les sessions actuellement connectées au serveur et ce qu’elles exécutent.
  • su utilisateur : Lance une nouvelle session d’interpréteur de commandes sous l’identité d’un autre utilisateur (su - charge son profil complet).
  • sudo commande : Exécute une unique commande avec les privilèges suprêmes du super-utilisateur (root).
Gestion des Comptes & Groupes
  • passwd : Permet de changer son propre mot de passe (ou celui d’un utilisateur avec sudo passwd nom).
  • useradd nom : Crée un nouvel utilisateur sur le système (useradd -m nom crée aussi son dossier /home/nom).
  • groupadd groupe : Ajoute un nouveau groupe d’utilisateurs au système.
  • usermod -a -G groupe utilisateur : Ajoute un utilisateur existant dans un groupe supplémentaire (ex: sudo usermod -a -G docker student).

✘ Prudence absolue avec sudo (et l’option -a de usermod) !

  1. Méfiez-vous toujours des commandes précédées de sudo : en tant que super-utilisateur, le noyau désactive les garde-fous. Une commande sudo rm -rf ou une mauvaise manipulation de partition peut rendre votre système instantanément inopérant.
  2. N’oubliez jamais le -a (append) dans usermod -a -G : taper usermod -G groupe utilisateur sans -a remplace tous les groupes secondaires de l’utilisateur par ce seul groupe (ce qui peut vous faire perdre vos propres droits sudo !).

🔍 Journaux du Noyau et Diagnostic Matériel

Lorsqu’un périphérique (clé USB, carte réseau, disque) est branché ou présente un dysfonctionnement, trois commandes permettent d’interroger directement le noyau et les bus matériels :

Commande Rôle et astuce d’utilisation
dmesg Affiche les journaux internes du noyau Linux (Kernel Ring Buffer). Très bavard : préférez dmesg | tail pour lire la fin !
lspci Liste tous les périphériques connectés sur le bus interne PCI / PCIe (carte mère, carte graphique, contrôleurs réseau/NVMe).
lsusb Liste tous les périphériques branchés sur les ports et contrôleurs USB de la machine.
uname -a Affiche le nom du noyau, sa version exacte, la date de compilation et l’architecture matérielle (x86_64, aarch64).