GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Read only bind-mount?

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).


Linux
  1. Überprüfen der Gültigkeit eines NFS-Mounts

  2. Wenns verstehen?

  3. Lesezugriff auf alle Dateien in einem bestimmten Unterordner?

  4. Problem mit schreibgeschütztem Dateisystem?

  5. Ntfs-Partition ist als schreibgeschützt gemountet?

Mounten Sie das Gerät mit bestimmten Benutzerrechten

Gibt es eine Möglichkeit, vim im schreibgeschützten Modus zu starten?

Nur Binding-Mounts auflisten

Warum respektiert mount die Nur-Lesen-Option für Bind-Mounts nicht?

Nur interessante Einhängepunkte anzeigen / uninteressante Typen filtern

Machen Sie die Datei unter Linux auch für root schreibgeschützt