GNU/Linux >> Tutoriels Linux >  >> Linux

Liaison en lecture seule ?

Réponse directe de l'article de LWN :

mount --bind /vital_writable_data /untrusted_container/vital_data
mount -o bind,remount,ro /untrusted_container/vital_data

Pris en charge depuis Linux 2.6.26.


D'après cet article, c'est possible. Vous avez besoin d'un noyau récent.

mount --bind -o ro /vital_data /untrusted_container/vital_data

Dans Squeeze, cela ne fonctionnait qu'avec :

mount --bind /src /dst

alors

mount -o remount,ro /dst

Maintenant, dans Debian Wheezy, vous devez faire :

mount -o remount,ro,bind /dst

pour se débarrasser du :message de ressources occupées.

Edit : Maintenant, dans Debian Jessie, mount essaie d'être intelligent et monte des sous-répertoires, qui, s'ils sont déjà montés avec bind, deviennent récursifs et de mauvaises choses se produisent :)

Il existe une option spéciale qui force util-linux à être à nouveau "stupide". La solution est la suivante :

mount --bind --make-rprivate /sbin/ $prefix/sbin/
mount -o remount,ro,bind $prefix/sbin/

Ensuite, vous pouvez monter --bind $prefix/sbin dans un autre répertoire.

À partir de la page de manuel :

Les opérations de sous-arborescence partagée. Depuis Linux 2.6.15, il est possible de marquer un montage et ses sous-montages comme partagés, privés, esclaves ou non liés. Un montage partagé offre la possibilité de créer des miroirs de ce montage de sorte que les montages et démontages dans l'un des miroirs se propagent à l'autre miroir. Un montage esclave reçoit la propagation de son maître, mais pas l'inverse. Une monture privée n'a aucune capacité de propagation. Un montage non lié est un montage privé qui ne peut pas être cloné via une opération de liaison. La sémantique détaillée est documentée dans le fichier Documentation/filesystems/sharedsubtree.txt dans l'arborescence des sources du noyau. Les opérations prises en charge sont :

     mount --make-shared mountpoint
     mount --make-slave mountpoint
     mount --make-private mountpoint
     mount --make-unbindable mountpoint

Les commandes suivantes permettent de modifier récursivement le type de tous les montages sous un point de montage donné.

     mount --make-rshared mountpoint
     mount --make-rslave mountpoint
     mount --make-rprivate mountpoint
     mount --make-runbindable mountpoint

mount(8) ne lit pas fstab(5) lorsqu'une opération --make-* est demandée. Toutes les informations nécessaires doivent être spécifiées sur la ligne de commande. Notez que le noyau Linux ne permet pas de modifier plusieurs drapeaux de propagation avec un seul appel système mount(2), et les drapeaux ne peuvent pas être mélangés avec d'autres options de montage.

Depuis util-linux 2.23, la commande mount permet d'utiliser plusieurs drapeaux de propagation ensemble et également avec d'autres opérations de montage. Cette fonctionnalité est EXPERIMENTALE. Les drapeaux de propagation sont appliqués par des appels système mount(2) supplémentaires lorsque les opérations de montage précédentes ont réussi. Notez que ce cas d'utilisation n'est pas atomique. Il est possible de spécifier les drapeaux de propagation dans fstab(5) comme options de montage (private, slave, shared, unbindable, rprivate, rslave, rshared, runbindable).


Linux
  1. Vérification de la validité d'un montage NFS

  2. Comprendre les Si ?

  3. Accès en lecture seule à tous les fichiers d'un sous-dossier spécifique ?

  4. Pourquoi le descripteur de fichier est-il ouvert et lu une seule fois ?

  5. Problème de système de fichiers en lecture seule ?

La partition Ntfs est montée en lecture seule ?

Seule la racine peut monter, pourquoi ?

Vérifiez si le répertoire est monté avec bash

Comment monter manuellement un système de fichiers Linux en lecture/écriture en tant qu'utilisateur normal ?

Répertorier uniquement les montages liés

Pourquoi le montage ne respecte-t-il pas l'option de lecture seule pour les montages liés ?