1. Fichiers pivots des identités locales sous Linux

L’administration des utilisateurs locaux repose sur trois fichiers fondamentaux aux permissions hautement restreintes :

  • /etc/passwd : Contient les informations publiques des comptes (nom, UID, GID principal, répertoire personnel, shell par défaut). Accessible en lecture à tous.
  • /etc/shadow : Héberge les empreintes cryptographiques des mots de passe (SHA-512 ou Yescrypt) ainsi que les politiques d’expiration. Accessible uniquement par root (droits 0640 ou 0000).
  • /etc/group : Définit la composition des groupes et les appartenances secondaires.

2. Le modèle de permissions POSIX classique

Chaque fichier ou répertoire associe des droits à trois entités : Propriétaire (User), Groupe (Group) et Autres (Others) :

-rwxr-x--- 1 admin sysadmin 4096 Oct 03 12:00 deploy.sh
 |  |  |
 |  |  +--> Autres : aucun droit (0)
 |  +-----> Groupe sysadmin : lecture et exécution (r-x = 5)
 +--------> Utilisateur admin : lecture, écriture et exécution (rwx = 7)
Mode numérique = 0750

Trois bits spéciaux complètent ce dispositif :

  • SUID (4000) : Exécution du binaire avec les privilèges du propriétaire (ex: /usr/bin/passwd).
  • SGID (2000) : Héritage automatique du groupe propriétaire pour tout nouveau fichier créé dans un dossier partagé.
  • Sticky Bit (1000) : Interdiction de supprimer un fichier dont on n’est pas le propriétaire au sein d’un répertoire public (ex: /tmp).

3. Listes de contrôle d’accès étendues (POSIX ACLs)

Lorsque le modèle standard à un seul propriétaire et un seul groupe s’avère insuffisant pour un partage inter-services, les ACLs (Access Control Lists) permettent d’accorder des permissions nominatives :

# Définir une permission de lecture/écriture pour l'utilisateur auditeur
setfacl -m u:auditeur:rw /var/log/audit/rapport.log

# Définir une règle d'héritage par défaut pour un groupe sur tout un répertoire
setfacl -d -m g:comptabilite:r-x /partage/factures

# Consulter l'intégralité des ACLs associées
getfacl /partage/factures

4. Délégation de privilèges sécurisée avec Sudo

L’accès direct en tant que root doit être banni. La commande visudo garantit la cohérence syntaxique du fichier /etc/sudoers :

# Autoriser les membres du groupe secops à redémarrer nginx sans mot de passe
%secops ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx

Exigence suisse de traçabilité : Chaque commande invoquée par sudo est consignée dans les journaux système (/var/log/auth.log ou journalctl), répondant aux normes d’audit ISO 27001 et FINMA.