← retour aux snippets

mount bind: sandbox en lecture seule d'un répertoire

Monter un dossier en bind puis le remonter en read-only pour isoler une exécution.

bash security #mount#bind#sandbox

objectif

Exécuter une commande sur des données immuables sans risquer de modification accidentelle.

code minimal

sudo mount --bind /data /mnt/safe && sudo mount -o remount,ro,bind /mnt/safe

utilisation

# exécuter une tâche qui lit seulement
sudo chroot / /usr/bin/env -i HOME=/ TMPDIR=/tmp bash -lc 'ls -l /mnt/safe'

# démonter proprement
sudo umount /mnt/safe

variante(s) utile(s)

# rendre /tmp privé (MS_PRIVATE) pour éviter la propagation
sudo mount --make-rprivate /

# bind récursif
sudo mount --rbind /data /mnt/safe && sudo mount -o remount,ro,bind /mnt/safe

notes

  • nécessite des privilèges. Attention aux namespaces des conteneurs.
  • pour un isolement plus fort, combinez avec systemd-run -p PrivateTmp=yes -p ProtectSystem=strict.
  • vérifiez les montages avec findmnt.