Das Programm
mount kümmert sich um das Einhängen ins Dateisystem, irgendwo unterhalb /.
Mit Hilfe dieses Programms und einigen Treibern kann man fast alles "mouten". Seit Kernelversion 2.6.14 ist ein neues Kernelmodul verfügbar: FUSE (
File System In Userspace) mit dem es möglich ist, Dateisysteme zu mounten, ohne dass die dafür nötigen Treiber im Kernel laufen müssen, sondern, wie der Name schon suggieriert, im Userspace.
So kann man auch mit einem monolithischen Kernel die exotischsten Dateisysteme verwenden, ohne Bauchschmerzen zu bekommen. Auch sind die Kernelmaintainer entlastet, die sehr selten genutzte oder neue Dateisystemtreiber nicht im Kernel pflegen müssen.
Da man mit mount so gut wie alles mounten kann, kann man damit auch Dateien und Ordner bereits eingehängter Dateisysteme noch einmal an anderer Stelle einhängen. So lassen sich z.B. ISO-Dateien einfach als ein Ordner einhängen, Laufwerksbuchstaben gibt es hier ja nicht. Die Option lautet
mount -o loop.
Ordner lassen sich ebenfalls mehrmals einhängen. Dazu verwendet man
mount -o bind /path/to/directory /path/to/the/other/directory. Der Ordner behältet dort Eigentümer und Dateirechte. Das kann aber manchmal nicht gewünscht sein.
Beispiel: Man will einem User Zugriff auf ein fremdes Verzeichnis geben, was ihm nicht gehört, indem man es z.B. in sein Userverzeichnis mountet. Schreibrechte erteilen ohne die Eigentumsrechte verändern zu müssen, klappt nur mit einem Schreibrecht auf "other", was der Sicherheit von Webservern beispielsweise nicht zuträglich ist. Außerdem gehören neu erstellte Dateien dann dem Nutzer, nicht dem Eigentümer des Ordners. Für Webserver also nicht wirklich geeignet.
Daher gibt es für FUSE ein Modul mit dem Namen
bindfs. Damit kann man einen Ordner per bind so mounten, das alle Dateien, auch neu erstellte, voreingestellte Rechte erhalten, und das ganze transparant zum ursprünglichen Eigentümer.
Also ein "mount --bind in userspace, with extras".
Quelle:
http://www.cs.helsinki.fi/u/partel/bindfs/