GNU/Linux >> Znalost Linux >  >> Linux

Bind-mount pouze pro čtení?

Přímá odpověď z článku LWN:

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

Podporováno od Linuxu 2.6.26.


Podle tohoto článku je to možné. Potřebujete aktuální jádro.

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

Ve Squeeze to dříve fungovalo pouze s:

mount --bind /src /dst

pak

mount -o remount,ro /dst

Nyní v Debian Wheezy musíte udělat:

mount -o remount,ro,bind /dst

abyste se zbavili zprávy:zdroj zaneprázdněn.

Edit:Nyní v Debianu Jessie se mount snaží být chytrý a připojuje podadresáře, které, pokud jsou již připojeny pomocí bind, jsou rekurzivní a stávají se špatné věci :)

Existuje speciální možnost, která nutí util-linux být znovu 'hloupý'. Řešení je toto:

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

Poté můžete připojit --bind $prefix/sbin k jinému adresáři.

Z manuálové stránky:

Operace sdíleného podstromu. Od Linuxu 2.6.15 je možné označit připojení a jeho podstromové připojení jako sdílené, soukromé, slave nebo unbindable. Sdílené připojení poskytuje možnost vytvářet zrcadla tohoto připojení tak, že připojení a odpojení v rámci kteréhokoli ze zrcadel se šíří do druhého zrcadla. Slave mount přijímá šíření od svého pána, ale ne naopak. Soukromý držák nenese žádné propagační schopnosti. Unbindable mount je soukromé připojení, které nelze naklonovat pomocí operace vazby. Podrobná sémantika je zdokumentována v souboru Documentation/filesystems/sharedsubtree.txt ve zdrojovém stromu jádra. Podporované operace jsou:

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

Následující příkazy umožňují rekurzivně změnit typ všech připojení pod daným bodem připojení.

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

mount(8) nečte fstab(5), když je požadována operace --make-*. Všechny potřebné informace musí být zadány na příkazovém řádku. Všimněte si, že linuxové jádro neumožňuje změnit více příznaků šíření pomocí jediného systémového volání mount(2) a příznaky nelze kombinovat s jinými možnostmi připojení.

Od util-linux 2.23 umožňuje příkaz mount používat několik příznaků šíření společně a také společně s dalšími operacemi připojení. Tato funkce je EXPERIMENTÁLNÍ. Příznaky šíření jsou aplikovány pomocí dalších systémových volání mount(2), když byly předchozí operace připojení úspěšné. Všimněte si, že tento případ použití není atomický. Je možné specifikovat příznaky šíření ve fstab(5) jako možnosti připojení (private, slave, shared, unbindable, rprivate, rslave, rshared, runbindable).


Linux
  1. Ověření platnosti připojení NFS

  2. Jak zkontrolovat, zda je připojen konkrétní adresář?

  3. Přístup pouze pro čtení ke všem souborům v konkrétní podsložce?

  1. Je oddíl Ntfs připojen pouze pro čtení?

  2. Souborový systém pouze pro čtení po upgradu na 15.04 s?

  3. Only Root Can Mount, proč?

  1. Jak mohu ručně připojit linuxový souborový systém pro čtení/zápis jako běžný uživatel?

  2. Připojte zařízení se specifickými uživatelskými právy

  3. Existuje způsob, jak spustit vim v režimu pouze pro čtení