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.