Direkte Antwort aus dem LWN-Artikel:
mount --bind /vital_writable_data /untrusted_container/vital_data
mount -o bind,remount,ro /untrusted_container/vital_data
Unterstützt seit Linux 2.6.26.
Laut diesem Artikel ist es möglich. Sie benötigen einen aktuellen Kernel.
mount --bind -o ro /vital_data /untrusted_container/vital_data
In Squeeze funktionierte es früher nur mit:
mount --bind /src /dst
dann
mount -o remount,ro /dst
Jetzt müssen Sie in Debian Wheezy Folgendes tun:
mount -o remount,ro,bind /dst
um loszuwerden:Ressource ausgelastet Nachricht.
Bearbeiten:Jetzt versucht mount in Debian Jessie, schlau zu sein und Unterverzeichnisse zu mounten, was, wenn es bereits mit bind gemountet wurde, rekursiv wird und schlimme Dinge passieren :)
Es gibt eine spezielle Option, die util-linux zwingt, wieder 'dumm' zu sein. Lösungen sind diese:
mount --bind --make-rprivate /sbin/ $prefix/sbin/
mount -o remount,ro,bind $prefix/sbin/
Danach können Sie --bind $prefix/sbin in ein anderes Verzeichnis einhängen.
Aus der Manpage:
Die Shared-Subtree-Operationen. Seit Linux 2.6.15 ist es möglich, einen Mount und seine Submounts als Shared, Private, Slave oder Unbindable zu markieren. Ein gemeinsam genutztes Mount bietet die Möglichkeit, Mirrors dieses Mounts zu erstellen, sodass Mounts und Unmounts innerhalb eines der Mirrors an den anderen Mirror weitergegeben werden. Ein Slave-Mount empfängt die Ausbreitung von seinem Master, aber nicht umgekehrt. Ein privates Reittier trägt keine Fortpflanzungsfähigkeiten. Ein unbindbarer Mount ist ein privater Mount, der nicht durch eine Bindeoperation geklont werden kann. Die detaillierte Semantik ist in der Datei Documentation/filesystems/sharedsubtree.txt im Kernel-Quellbaum dokumentiert. Unterstützte Operationen sind:
mount --make-shared mountpoint
mount --make-slave mountpoint
mount --make-private mountpoint
mount --make-unbindable mountpoint
Die folgenden Befehle erlauben es, den Typ aller Mounts unter einem gegebenen Mountpoint rekursiv zu ändern.
mount --make-rshared mountpoint
mount --make-rslave mountpoint
mount --make-rprivate mountpoint
mount --make-runbindable mountpoint
mount(8) liest fstab(5) nicht, wenn eine --make-*-Operation angefordert wird. Alle notwendigen Informationen müssen auf der Kommandozeile angegeben werden. Beachten Sie, dass der Linux-Kernel es nicht erlaubt, mehrere Propagierungs-Flags mit einem einzigen mount(2)-Systemaufruf zu ändern, und die Flags nicht mit anderen Mount-Optionen gemischt werden können.
Seit util-linux 2.23 erlaubt der Mount-Befehl die Verwendung mehrerer Propagation-Flags zusammen und auch zusammen mit anderen Mount-Operationen. Diese Funktion ist EXPERIMENTELL. Die Ausbreitungs-Flags werden durch zusätzliche mount(2)-Systemaufrufe angewendet, wenn die vorangehenden Mount-Operationen erfolgreich waren. Beachten Sie, dass dieser Anwendungsfall nicht atomar ist. Es ist möglich, die Ausbreitungs-Flags in fstab(5) als Mount-Optionen anzugeben (private, slave, shared, unbindable, rprivate, rslave, rshared, runbindable).