Provided by: manpages-de_4.27.0-1_all bug

BEZEICHNUNG

       mount_namespaces - Überblick über Linux-Einhänge-Namensräume

BESCHREIBUNG

       Für einen Überblick über Namensräume, siehe namespaces(7).

       Einhängenamensräume  ermöglichen  es,  die  Listen der von Prozessen in jeder Namensrauminstanz gesehenen
       Einhängungen voneinander zu isolieren. Daher wird jeder Prozess in jeder der Einhänge-Namensrauminstanzen
       eine individuelle Einzelverzeichnis-Hierarchie sehen.

       Die von den Dateien /proc/PID/mounts,  /proc/PID/mountinfo  und  /proc/PID/mountstats  (alle  In  proc(5)
       beschrieben)  bereitgestellten  Ansichten entsprechen den Einhängenamensräumen, in denen sich der Prozess
       mit der PID PID befindet. (Alle Prozesse, die sich in dem gleichen  Einhängenamensraum  befinden,  werden
       die gleiche Ansicht auf diese Dateien sehen.)

       Ein  neuer  Einhängenamensraum  wird  entweder  mittels clone(2) oder mittels unshare(2) mit dem Schalter
       CLONE_NEWNS erstellt. Wenn ein neuer Einhängenamensraum erstellt wird, wird seine Einhängeliste wie folgt
       initialisiert:

       •  Falls der Namensraum mittels clone(2) erstellt wurde, ist die Einhängeliste  des  Nachfolgenamensraums
          eine Kopie der Einhängeliste des Namensraums des Elternprozesses.

       •  Falls  der  Namensraum  mittels unshare(2) erstellt wurde, ist die Einhängeliste des neuen Namensraums
          eine Kopie der Einhängeliste in dem vorherigen Namensraum des aufrufenden Prozesses.

       Nachfolgende Änderungen an der Einhängeliste (mount(2) und  umount(2))  in  jedem  der  Namensräume  wird
       (standardmäßig)  die  Einhängeliste, die in den anderen Namensräumen gesehen wird, nicht betreffen (lesen
       Sie allerdings auch die nachfolgende Diskussion von gemeinsamen Unterbäumen).

GEMEINSAME UNTERBÄUME

       Nachdem die Implementierung von Einhängenamensräumen abgeschlossen war, zeigte die  Erfahrung,  dass  die
       bereitgestellte  Isolierung  in  einigen  Fällen  zu  weit  ging.  Um beispielsweise eine frisch geladene
       optische Platte in allen Einhängenamensräumen zur Verfügung zu stellen, war in jedem der Namensräume eine
       Einhängeaktion notwendig. Für diesen und andere  Anwendungsfälle  wurde  die  Funktionalität  gemeinsamer
       Unterbäume  in  Linux  2.6.15  eingeführt.  Diese  Funktionalität erlaubt die automatische, kontrollierte
       Weiterleitung von mount(2)- und  umount(2)-Ereignissen  zwischen  Namensräumen  (oder  genauer,  zwischen
       Einhängungen, die Mitglied einer Gemeinschaftsgruppe sind, die Ereignisse aneinander weiterleiten).

       Jede Einhängung wird (mittels mount(2)) markiert, dass sie eine der folgenden Weiterleitungstypen hat:

       MS_SHARED
              Diese Einhängung nutzt Ereignisse mit Mitgliedern der Gemeinschaftsgruppe gemeinsam. mount(2)- und
              umount(2)-Ereignisse  direkt  unterhalb  dieser Einhängung werden zu den anderen Einhängungen, die
              Mitglied dieser Gemeinschaftsgruppe sind, weitergeleitet. Weiterleitung bedeutet  hier,  dass  der
              gleiche  mount(2)  oder  umount(2)  unter  allen  diesen  Einhängungen  in der Gemeinschaftsgruppe
              automatisch erfolgen wird. Entsprechend  werden  mount(2)-  und  umount(2)-Ereignisse,  die  unter
              anderen Einhängungen der Gruppe stattfinden, zu dieser Einhängung weitergeleitet.

       MS_PRIVATE
              Diese   Einhängung   ist   privat;   sie   ist   in   keiner  Gemeinschaftsgruppe.  mount(2)-  und
              umount(2)-Ereignisse werden nicht aus dieser Einhängung heraus oder in sie hinein weitergeleitet.

       MS_SLAVE
              mount(2)- und umount(2)-Ereignisse werden in diese Einhängung von einer  übergeordneten  (Master-)
              Gemeinschaftsgruppe weitergeleitet. mount(2)- und umount(2)-Ereignisse unterhalb dieser Einhängung
              werden nicht zu anderen Mitgliedern der Gruppe weitergeleitet.

              Beachten  Sie, dass eine Einhängung eine Abhängige von einer anderen Gemeinschaftsgruppe sein kann
              und gleichzeitig ein Mitglied in einer zweiten Gemeinschaftsgruppe sein kann, an die und  von  der
              sie   mount(2)-   und  umount(2)-Ereignisse  sendet  bzw.  empfängt.  (Genauer  gesagt  kann  eine
              Gemeinschaftsgruppe eine Abhängige einer anderen Gemeinschaftsgruppe sein).

       MS_UNBINDABLE
              Dies ist wie eine private Einhängung und zusätzlich kann diese Einhängung  nicht  mit  der  Option
              bind  erfolgen.  Wird versucht, diese Einhängung mit der Option bind einzuhängen (mount(2) mit dem
              Schalter MS_BIND), dann schlägt dies fehl.

              Wenn eine rekursive Einhängung mit der Option bind (mount(2) mit den Schaltern MS_BIND und MS_REC)
              auf einem Verzeichnisunterbaum erfolgt, werden alle Einhängungen mit der Option bind innerhalb des
              Unterbaums automatisch abgeschnitten (d.h. nicht repliziert), wenn der Unterbaum repliziert  wird,
              um den Ziel-Unterbaum zu erstellen.

       Bitte  lesen  Sie  die  HINWEISE  für eine Diskussion der Weiterleitungstypen, die einer neuen Einhängung
       zugeordnet sind.

       Der Weiterleitungstyp ist eine einhängungsbezogene Einstellung: einige Einhängungen könnten als gemeinsam
       gekennzeichnet  sein  (wobei  jede   gemeinsame   Einhängung   ein   Mitglied   einer   unterschiedlichen
       Gemeinschaftsgruppe ist), während andere privat (oder abhängig oder nicht-bind-fähig) sind.

       Beachten  Sie,  dass  der  Weiterleitungstyp  einer  Einhängung  bestimmt, ob mount(2)- und umount(2) von
       Einhängungen direkt unter der Einhängung weitergeleitet werden. Daher betrifft der  Einhängungstyp  nicht
       die  Weiterleitung  von  Ereignissen  für  weiter  unten  liegende  Einhängungen.  Was passiert, wenn die
       Einhängung selbst ausgehängt wird, wird durch den Weiterleitungstyp bestimmt, der für  die  übergeordnete
       Einhängung wirksam ist.

       Mitglieder  werden  zu einer Gemeinschaftsgruppe hinzugefügt, wenn eine Einhängung als gemeinsam markiert
       ist und entweder:

       (a)  die Einhängung während der Erstellung eines neuen Einhängenamensraumes repliziert wird; oder

       (b)  eine neue Einhängung mit der Option bind von dieser Einhängung erstellt wird.

       In beiden Fällen tritt die neue Einhängung der Gemeinschaftsgruppe bei, bei der die bestehende Einhängung
       bereits Mitglied ist.

       Eine neue  Gemeinschaftsgruppe  wird  auch  erstellt,  wenn  eine  nachfolgende  Einhängung  unter  einer
       bestehenden  Einhängung,  die  als  gemeinsam  markiert  ist,  erstellt  wird.  In  diesem  Fall wird die
       nachfolgende Einhängung als gemeinsam markiert und die entstehende Gemeinschaftsgruppe besteht aus  allen
       Einhängungen, die unterhalb der Mitglieder der übergeordneten Einhängung repliziert werden.

       Eine  Einhängung  hört  auf,  Mitglied  einer  Gemeinschaftsgruppe  zu sein, wenn die Einhängung entweder
       explizit ausgehängt wird oder wenn die Einhängung implizit ausgehängt  wird,  da  der  Einhängenamensraum
       entfernt wird (da er keinen Mitgliedsprozess mehr hat).

       Der  Weiterleitungstyp  der Einhängungen in einem Einhängenamensraum kann mittels der »optionalen Felder«
       in /proc/PID/mountinfo offengelegt werden. (Siehe proc(5) für Details zu  dieser  Datei.)  Die  folgenden
       Markierungen können in den optionalen Feldern für einen Datensatz in dieser Datei auftauchen:

       shared:X
              Diese Einhängung wird in der Gemeinschaftsgruppe X gemeinsam benutzt. Jede Gemeinschaftsgruppe hat
              eine  eindeutige Kennung, die durch den Kernel automatisch erstellt wird. Alle Einhängungen in der
              gleichen Gemeinschaftsgruppe werden die gleiche Kennung zeigen. (Diese Kennungen werden  beginnend
              mit  dem  Wert  1  zugewiesen und können wiederbenutzt werden, wenn eine Gemeinschaftsgruppe keine
              Mitglieder mehr hat.)

       master:X
              Diese Einhängung ist eine Abhängige der gemeinsamen Gemeinschaftsgruppe X.

       propagate_from:X (seit Linux 2.6.26)
              Diese  Einhängung  ist  eine  Abhängige  und  empfängt   Weiterleitungen   von   der   gemeinsamen
              Gemeinschaftsgruppe  X.  Diese  Markierung  wird  immer  zusammen  mit  einer  Markierung master:X
              auftauchen.  Hier   ist   X   die   naheliegendste   dominante   Gemeinschaftsgruppe   unter   dem
              Wurzelverzeichnis des Prozesses. Falls X der direkte Master der Einhängung ist oder falls es keine
              dominante  Gemeinschaftsgruppe  unterhalb der gleichen Wurzel gibt, dann ist nur das Feld master:X
              und nicht das Feld propagate_from:X vorhanden. Weitere Details folgen weiter unten.

       unbindable
              Dies ist eine nicht-bind-fähige Einhängung.

       Falls keine der obigen Markierungen vorhanden ist, dann ist dies eine private Einhängung.

   Beispiel für MS_SHARED und MS_PRIVATE
       Nehmen wir an, dass wir im Terminal des anfänglichen Einhängenamensraums eine  Einhängung  als  gemeinsam
       und eine andere als privat markieren, und uns dann die Einhängungen in /proc/self/mountinfo anschauen:

           sh1# mount --make-shared /mntS
           sh1# mount --make-private /mntP
           sh1# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           77 61 8:17 / /mntS rw,relatime shared:1
           83 61 8:15 / /mntP rw,relatime

       In  der  Ausgabe  in  /proc/self/mountinfo können wir sehen, dass /mntS eine gemeinsame Einhängung in der
       Gemeinschaftsgruppe 1 ist und dass /mntP keine optionalen Markierungen hat und  damit  anzeigt,  dass  es
       eine  private  EInhängung  ist.  Die  ersten  zwei  Felder  in  jedem  Datensatz in dieser Datei sind die
       eindeutige Kennung für diese Einhängung und die Einhängungskennung der Elterneinhängung. Wir können diese
       Datei  weiter  untersuchen,  um  zu  sehen,  dass  die  Elterneinhängung  von   /mntS   und   /mntP   das
       Wurzelverzeichnis / ist, das privat eingehängt wurde:

           sh1# cat /proc/self/mountinfo | awk '$1 == 61' | sed 's/ - .*//'
           61 0 8:2 / / rw,relatime

       In  einem  zweiten  Terminal  erstellen  wir einen neuen Einhängenamensraum, in dem wir eine zweite Shell
       ausführen und die Einhängungen untersuchen:

           $ PS1='sh2# ' sudo unshare -m --propagation unchanged sh
           sh2# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           222 145 8:17 / /mntS rw,relatime shared:1
           225 145 8:15 / /mntP rw,relatime

       Der neue Einhängenamensraum erhielt eine Kopie der Einhängungen  des  anfänglichen  Einhängenamensraumes.
       Diese   neuen   Einhängungen  behalten  die  gleichen  Weiterleitungstypen  bei,  haben  aber  eindeutige
       Einhängekennungen. (Die Option --propagation unchanged verhindert, dass unshare(1) alle Einhängungen  als
       privat  markiert,  wenn  ein neuer Einhängenamensraum erstellt wird, wie er es sonst standardmäßig machen
       würde.)

       In dem zweiten Terminal erstellen wir jetzt Untereinhängungen unter  sowohl  /mntS  als  auch  /mntP  und
       untersuchen das Ergebnis:

           sh2# mkdir /mntS/a
           sh2# mount /dev/sdb6 /mntS/a
           sh2# mkdir /mntP/b
           sh2# mount /dev/sdb7 /mntP/b
           sh2# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           222 145 8:17 / /mntS rw,relatime shared:1
           225 145 8:15 / /mntP rw,relatime
           178 222 8:22 / /mntS/a rw,relatime shared:2
           230 225 8:23 / /mntP/b rw,relatime

       In  obiger Ausgabe kann erkannt werden, dass /mntS/a als gemeinsame Einhängung (die Einstellung wurde von
       der Elterneinhängung übernommen) und /mntP/b als private Einhängung erstellt wurde.

       Wird zum ersten Terminal zurückgekehrt und das Ergebnis untersucht,  können  wir  sehen,  dass  die  neue
       Einhängung,  die unterhalb der gemeinsamen Einhängung /mntS erstellt wurde, an die Einhängungen in seiner
       Gemeinschaftsgruppe weitergeleitet wurde (im anfänglichen Einhängenamensraum), aber die  Einhängung,  die
       unter der privaten Einhängung /mntP erstellt wurde, nicht weitergeleitet wurde:

           sh1# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           77 61 8:17 / /mntS rw,relatime shared:1
           83 61 8:15 / /mntP rw,relatime
           179 77 8:22 / /mntS/a rw,relatime shared:2

   MS_SLAVE-Beispiel
       Wird  eine  Einhängung eine Abhängige, ist es möglich, weitergeleitete mount(2)- und umount(2)-Ereignisse
       von einer  gemeinsamen  Master-Gemeinschaftsgruppe  zu  erhalten  und  zugleich  sie  daran  zu  hindern,
       Ereignisse   zu   diesem  Master  weiterzuleiten.  Dies  ist  nützlich,  wenn  Sie  (beispielsweise)  ein
       Einhängeereignis erhalten möchten, wenn eine optische Platte in der gemeinsamen  Gemeinschaftsgruppe  des
       Masters  eingehängt  wird  (in  einem  anderen  Einhängenamensraum),  aber  Sie  verhindern möchten, dass
       mount(2)- und umount(2)-Ereignisse unter der Einhängung  der  Abhängigen  zu  Seiteneffekten  in  anderen
       Namensräumen führen.

       Wir  zeigen  die  Auswirkung  der  Abhängigen,  indem  wir  zuerst  zwei  Einhängungen  als  gemeinsam im
       anfänglichen Namensraum markieren:

           sh1# mount --make-shared /mntX
           sh1# mount --make-shared /mntY
           sh1# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           132 83 8:23 / /mntX rw,relatime shared:1
           133 83 8:22 / /mntY rw,relatime shared:2

       Auf einem zweiten Terminal erstellen wir einen neuen Einhängenamensraum und untersuchen die Einhängungen:

           sh2# unshare -m --propagation unchanged sh
           sh2# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           168 167 8:23 / /mntX rw,relatime shared:1
           169 167 8:22 / /mntY rw,relatime shared:2

       In dem neuen Einhängenamensraum können wir eine Einhängung als Abhängige markieren:

           sh2# mount --make-slave /mntY
           sh2# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           168 167 8:23 / /mntX rw,relatime shared:1
           169 167 8:22 / /mntY rw,relatime master:2

       Aus der obigen Ausgabe kann  gesehen  werden,  dass  /mntY  jetzt  eine  abhängige  Einhängung  ist,  die
       Weiterleitungsereignisse von der gemeinsamen Gemeinschaftsgruppe mit der Kennung 2 erhält.

       Im  neuen  Namensraum  wird  jetzt  fortgefahren  und Untereinhängungen unter sowohl /mntX als auch /mntY
       erstellt:

           sh2# mkdir /mntX/a
           sh2# mount /dev/sda3 /mntX/a
           sh2# mkdir /mntY/b
           sh2# mount /dev/sda5 /mntY/b

       Wenn wir den Zustand der Einhängungen in den neuen  Einhängenamensräumen  untersuchen,  sehen  wir,  dass
       /mntX/a  als  eine  neue  gemeinsame  Einhängung  erstellt  wurde  (die  die  Einstellung  »shared« ihrer
       Elterneinhängung geerbt hat) und dass /mntY/b als eine private Einhängung erstellt wurde:

           sh2# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           168 167 8:23 / /mntX rw,relatime shared:1
           169 167 8:22 / /mntY rw,relatime master:2
           173 168 8:3 / /mntX/a rw,relatime shared:3
           175 169 8:5 / /mntY/b rw,relatime

       Zurück im ersten Terminal (im anfänglichen Einhängenamensraum) sehen wir, dass die Einhängung /mntX/a  zu
       dem  Mitglied  der  Gemeinschaftsgruppe  weitergeleitet  wurde  (der  gemeinsame  /mntX),  aber  dass die
       Einhängung /mntY/b nicht weitergeleitet wurde:

           sh1# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           132 83 8:23 / /mntX rw,relatime shared:1
           133 83 8:22 / /mntY rw,relatime shared:2
           174 132 8:3 / /mntX/a rw,relatime shared:3

       Jetzt erstellen wir eine neue Einhängung unter /mntY in der ersten Shell:

           sh1# mkdir /mntY/c
           sh1# mount /dev/sda1 /mntY/c
           sh1# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           132 83 8:23 / /mntX rw,relatime shared:1
           133 83 8:22 / /mntY rw,relatime shared:2
           174 132 8:3 / /mntX/a rw,relatime shared:3
           178 133 8:1 / /mntY/c rw,relatime shared:4

       Wenn wir die Einhängungen in dem zweiten Einhängenamensraum untersuchen, sehen wir, dass in  diesem  Fall
       die Einhängung zu der abhängigen Einhängung weitergeleitet wurde und dass die neue Einhängung selbst eine
       Abhängige ist (von der Gemeinschaftsgruppe 4):

           sh2# cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           168 167 8:23 / /mntX rw,relatime shared:1
           169 167 8:22 / /mntY rw,relatime master:2
           173 168 8:3 / /mntX/a rw,relatime shared:3
           175 169 8:5 / /mntY/b rw,relatime
           179 169 8:1 / /mntY/c rw,relatime master:4

   MS_UNBINDABLE-Beispiel
       Einer   der   Hauptzwecke  der  nicht-bindfähigen  Einhängungen  ist  die  Vermeidung  des  Problems  der
       »Einhängeexplosionen«, bei der wiederholt durchgeführte Einhängungen mit der Option bind eines Unterbaums
       auf einer höheren Ebene in einer Einhängung auf niedrigeren Ebene ausgeführt werden. Das Problem wird  in
       der nachfolgenden Shell-Sitzung dargestellt.

       Nehmen wir an, wir haben ein System mit folgenden Einhängungen:

           # mount | awk '{print $1, $2, $3}'
           /dev/sda1 on /
           /dev/sdb6 on /mntX
           /dev/sdb7 on /mntY

       Nehmen  wir  weiterhin  an,  dass  wir  das  Wurzelverzeichnis  rekursiv  unter  den  Home-Verzeichnissen
       verschiedener Benutzer mit der Option bind einhängen möchten. Wir machen dies für den ersten Benutzer und
       untersuchen die Einhängungen:

           # mount --rbind / /home/cecilia/
           # mount | awk '{print $1, $2, $3}'
           /dev/sda1 on /
           /dev/sdb6 on /mntX
           /dev/sdb7 on /mntY
           /dev/sda1 on /home/cecilia
           /dev/sdb6 on /home/cecilia/mntX
           /dev/sdb7 on /home/cecilia/mntY

       Wenn wir diese Aktion für den zweiten Benutzer wiederholen, beginnen wir, das Explosionsproblem zu sehen:

           # mount --rbind / /home/henry
           # mount | awk '{print $1, $2, $3}'
           /dev/sda1 on /
           /dev/sdb6 on /mntX
           /dev/sdb7 on /mntY
           /dev/sda1 on /home/cecilia
           /dev/sdb6 on /home/cecilia/mntX
           /dev/sdb7 on /home/cecilia/mntY
           /dev/sda1 on /home/henry
           /dev/sdb6 on /home/henry/mntX
           /dev/sdb7 on /home/henry/mntY
           /dev/sda1 on /home/henry/home/cecilia
           /dev/sdb6 on /home/henry/home/cecilia/mntX
           /dev/sdb7 on /home/henry/home/cecilia/mntY

       Unter /home/henry haben wir nicht nur die Einhängungen /mntX und /mntY rekursiv hinzugefügt, sondern auch
       die rekursiven Einhängungen dieser Verzeichnisse unter /home/cecilia, die im vorherigen Schritt  erstellt
       wurden. Bei der Wiederholung dieses Schrittes für einen dritten Benutzer wird es offensichtlich, dass die
       Explosion von exponentieller Natur ist:

           # mount --rbind / /home/otto
           # mount | awk '{print $1, $2, $3}'
           /dev/sda1 on /
           /dev/sdb6 on /mntX
           /dev/sdb7 on /mntY
           /dev/sda1 on /home/cecilia
           /dev/sdb6 on /home/cecilia/mntX
           /dev/sdb7 on /home/cecilia/mntY
           /dev/sda1 on /home/henry
           /dev/sdb6 on /home/henry/mntX
           /dev/sdb7 on /home/henry/mntY
           /dev/sda1 on /home/henry/home/cecilia
           /dev/sdb6 on /home/henry/home/cecilia/mntX
           /dev/sdb7 on /home/henry/home/cecilia/mntY
           /dev/sda1 on /home/otto
           /dev/sdb6 on /home/otto/mntX
           /dev/sdb7 on /home/otto/mntY
           /dev/sda1 on /home/otto/home/cecilia
           /dev/sdb6 on /home/otto/home/cecilia/mntX
           /dev/sdb7 on /home/otto/home/cecilia/mntY
           /dev/sda1 on /home/otto/home/henry
           /dev/sdb6 on /home/otto/home/henry/mntX
           /dev/sdb7 on /home/otto/home/henry/mntY
           /dev/sda1 on /home/otto/home/henry/home/cecilia
           /dev/sdb6 on /home/otto/home/henry/home/cecilia/mntX
           /dev/sdb7 on /home/otto/home/henry/home/cecilia/mntY

       Das   Einhänge-Explosionsproblem  im  obigen  Szenario  kann  vermieden  werden,  indem  jede  der  neuen
       Einhängungen  nicht-bindfähig  gemacht  wird.  Die  Auswirkung  ist,  dass  rekursive  Einhängungen   des
       Wurzelverzeichnisses  sich  nicht  bei nicht-bindfähigen Einhängungen replizieren werden. Wir machen eine
       solche Einhängung für den ersten Benutzer:

           # mount --rbind --make-unbindable / /home/cecilia

       Bevor wir fortfahren, zeigen wir, dass die nicht-bindfähigen Einhängungen  in  der  Tat  nicht  bindfähig
       sind:

           # mkdir /mntZ
           # mount --bind /home/cecilia /mntZ
           mount: wrong fs type, bad option, bad superblock on /home/cecilia,
                  missing codepage or helper program, or other error

                  In einigen Fällen könnnen in Syslog hilfreiche Informationen gefunden
                  werden - versuchen Sie »dmesg | tail« oder so.

       Jetzt  erstellen  wir  nicht  bindfähige  rekursive Einhängungen mit der Option bind für die anderen zwei
       Benutzer:

           # mount --rbind --make-unbindable / /home/henry
           # mount --rbind --make-unbindable / /home/otto

       Bei der Untersuchung der Liste der Einhängungen sehen wir, dass es keine Explosion der Einhängungen  gab,
       da  die  nicht bindfähigen Einhängungen nicht unter den Verzeichnissen der jeweiligen Benutzer repliziert
       wurden:

           # mount | awk '{print $1, $2, $3}'
           /dev/sda1 on /
           /dev/sdb6 on /mntX
           /dev/sdb7 on /mntY
           /dev/sda1 on /home/cecilia
           /dev/sdb6 on /home/cecilia/mntX
           /dev/sdb7 on /home/cecilia/mntY
           /dev/sda1 on /home/henry
           /dev/sdb6 on /home/henry/mntX
           /dev/sdb7 on /home/henry/mntY
           /dev/sda1 on /home/otto
           /dev/sdb6 on /home/otto/mntX
           /dev/sdb7 on /home/otto/mntY

   Weiterleitungstyp-Übergänge
       Die nachfolgende Tabelle zeigt die Auswirkung, die die Anwendung  eines  neuen  Weiterleitungstyps  (d.h.
       mount --make-xxxx)  auf  bestehende  Weiterleitungstypen einer Einhängung hat. Die Zeilen entsprechen den
       bestehenden  Weiterleitungstypen  und  die  Spalten  sind  die  neuen  Weiterleitungseinstellungen.   Aus
       Platzgründen ist »private« (privat) mit »priv« und »unbindable« (nicht bindfähig) mit »unbind« abgekürzt.
                     make-shared   make-slave      make-priv  make-unbind
       ─────────────┬───────────────────────────────────────────────────────
       shared       │shared        slave/priv [1]  priv       unbind
       slave        │slave+shared  slave [2]       priv       unbind
       slave+shared │slave+shared  slave           priv       unbind
       private      │shared        priv [2]        priv       unbind
       unbindable   │shared        unbind [2]      priv       unbind

       Beachten Sie die folgenden Details zu der Tabelle:

       [1]  Falls  eine  gemeinsame  Einhängung  die  einzige  in  ihrer  Gemeinschaftsgruppe  ist, wird sie als
            abhängige auch automatisch privat.

       [2]  Abhängig machen einer nicht gemeinsamen Einhängung hat keine Auswirkung auf die Einhängung.

   Semantik von Bind (MS_BIND)
       Nehmen wir an, dass der folgende Befehl ausgeführt wird:

           mount --bind A/a B/b

       Hier ist A  die  Quelleinhängung,  B  die  Zieleinhängung,  a  ist  ein  Unterverzeichnispfad  unter  dem
       Einhängungspunkt A und b ist ein Unterverzeichnispfad unter dem Einhängungspunkt B. Der Weiterleitungstyp
       der  resultierenden Einhängung B/b hängt von den Weiterleitungstypen der Einhängungen A und B ab und wird
       in der folgenden Tabelle zusammengefasst.

                                        Quelle(A)
                                shared  private    slave         unbind
       ────────────────────────┬───────────────────────────────────────────
       Ziel(B)  shared         │shared  shared     slave+shared  ungültig
                nicht gemeinsam│shared  private    slave         ungültig

       Beachten Sie, dass ein rekursives Bind eines Unterbaums der gleichen Semantik  wie  der  Bind-Aktion  auf
       jede   Einhängung   im   Unterbaum   folgt.   (Nicht-Bind-fähige   Einhängungen   werden  automatisch  am
       Zieleinhängepunkt abgeschnitten.)

       Für weitere Details siehe Documentation/filesystems/sharedsubtree.rst in dem Kernelquellbaum.

   Semantik von Move (MS_MOVE)
       Nehmen wir an, dass der folgende Befehl ausgeführt wird:

           mount --move A B/b

       Hier ist A die Quelleinhängung, B die  Zieleinhängung  und  b  ist  der  Unterverzeichnispfad  unter  dem
       Einhängepunkt  B. Der Weiterleitungstyp der entstehenden Einhängung B/b hängt von den Weiterleitungstypen
       der Einhängungen A und B ab und wird in der nachfolgenden Tabelle zusammengefasst.

                                        Quelle(A)
                                shared  private    slave         unbind
       ────────────────────────┬─────────────────────────────────────────────
       Ziel(B)  shared         │shared  shared     slave+shared  ungültig
                nicht gemeinsam│shared  private    slave         unbindable

       Hinweis: Das Verschieben einer Einhängung, die sich unter  einer  gemeinsamen  Einhängung  befindet,  ist
       ungültig.

       Für weitere Details siehe Documentation/filesystems/sharedsubtree.rst in dem Kernelquellbaum.

   Einhänge-Semantik
       Angenommen, wir verwenden folgenden Befehl, um eine Einhängung zu erstellen:

           mount Gerät B/b

       Hier   ist  B  die  Zieleinhängung  und  b  der  Unterverzeichnispfad  unter  dem  Einhängepunkt  B.  Der
       Weiterleitungstyp der entstehenden Einhängung B/b folgt den gleichen Regeln wie für eine  Einhängung  mit
       der Option bind, bei der der Weiterleitungstyp der Quelleinhängung immer als privat betrachtet wird.

   Aushänge-Semantik
       Angenommen, wir verwenden folgenden Befehl, um eine Einhängung aufzulösen:

           umount A

       Hier ist A eine Einhängung auf B/b, wobei B die Elterneinhängung und b ein Unterverzeichnispfad unterhalb
       des  Einhängepunkts  B  ist.  Falls  B gemeinsam ist, dann werden alle kürzlich eingehängten Einhängungen
       ausgehängt, die sich bei b befinden,  die  Weiterleitungen  von  der  Einhängung  B  erhalten  und  keine
       Untereinhängungen haben.

   Die /proc/-PID-/mountinfo-Markierung propagate_from
       Die  Markierung  propagate_from:X  wird  in  den  optionalen  Feldern des Datensatzes /proc/PID/mountinfo
       gezeigt, falls es einen Prozess gibt, der den Master der direkt Abhängigen nicht  sehen  kann  (d.h.  der
       Pfadname  vom  Master  ist  von  dem  Dateisystemwurzelverzeichnis aus nicht erreichbar) und so nicht die
       Weiterleitungskette zwischen Einhängungen, die er sehen kann, bestimmen kann.

       In dem folgenden Beispiel erstellen  wir  zuerst  eine  Kette  aus  zwei  Gliedern  zwischen  Master  und
       Abhängiger,  zwischen  den  Einhängungen  /mnt, /tmp/etc und /mnt/tmp/etc. Dann wird der Befehl chroot(1)
       verwandt, um den Einhängepunkt /tmp/etc vom Wurzelverzeichnis unerreichbar zu  bekommen  und  damit  eine
       Situation  zu  erstellen,  bei  der  der  Master von /mnt/tmp/etc nicht vom (neuen) Wurzelverzeichnis des
       Prozesses aus erreichbar ist.

       Zuerst machen wir eine Einhängung mit der Option bind des Wurzelverzeichnisses auf  /mnt  und  dann  eine
       Einhängung  mit  der  Option  bind  von  /proc  bei  /mnt/proc, so dass nach einem späteren chroot(1) das
       Dateisystem proc(5) an dem korrekten Ort in der Umgebung innerhalb des Chroots sichtbar bleibt.

           # mkdir -p /mnt/proc
           # mount --bind / /mnt
           # mount --bind /proc /mnt/proc

       Als nächstes stellen wir sicher, dass die  Einhängung  /mnt  eine  gemeinsame  Einhängung  in  der  neuen
       Gemeinschaftsgruppe (ohne weitere Mitglieder) ist:

           # mount --make-private /mnt  # Von jeder vorherigen Gemeinschaftsgruppe isolieren
           # mount --make-shared /mnt
           # cat /proc/self/mountinfo | grep '/mnt' | sed 's/ - .*//'
           239 61 8:2 / /mnt … shared:102
           248 239 0:4 / /mnt/proc … shared:5

       Als nächstes hängen wir /mnt/etc auf /tmp/etc mit der Option bind ein:

           # mkdir -p /tmp/etc
           # mount --bind /mnt/etc /tmp/etc
           # cat /proc/self/mountinfo | egrep '/mnt|/tmp/' | sed 's/ - .*//'
           239 61 8:2 / /mnt … shared:102
           248 239 0:4 / /mnt/proc … shared:5
           267 40 8:2 /etc /tmp/etc … shared:102

       Anfänglich  sind  diese  zwei  Einhängungen  in  der  gleichen  Gemeinschaftsgruppe, aber dann machen wir
       /tmp/etc eine Abhängige von /mnt/etc, und dann machen wir /tmp/etc auch gemeinsam, so dass es  Ereignisse
       an die nächste Abhängige in der Kette weiterleiten kann:

           # mount --make-slave /tmp/etc
           # mount --make-shared /tmp/etc
           # cat /proc/self/mountinfo | egrep '/mnt|/tmp/' | sed 's/ - .*//'
           239 61 8:2 / /mnt … shared:102
           248 239 0:4 / /mnt/proc … shared:5
           267 40 8:2 /etc /tmp/etc … shared:105 master:102

       Dann  hängen  wir  /tmp/etc  auf  /mnt/tmp/etc mit der Option bind ein. Wieder sind die zwei Einhängungen
       anfänglich in der gleichen Gemeinschaftsgruppe, aber wir machen /mnt/tmp/etc eine Abhängige von /tmp/etc:

           # mkdir -p /mnt/tmp/etc
           # mount --bind /tmp/etc /mnt/tmp/etc
           # mount --make-slave /mnt/tmp/etc
           # cat /proc/self/mountinfo | egrep '/mnt|/tmp/' | sed 's/ - .*//'
           239 61 8:2 / /mnt … shared:102
           248 239 0:4 / /mnt/proc … shared:5
           267 40 8:2 /etc /tmp/etc … shared:105 master:102
           273 239 8:2 /etc /mnt/tmp/etc … master:105

       In vorhergehender Ausgabe können wir sehen, dass  /mnt  der  Master  der  Abhängigen  /tmp/etc  ist,  die
       wiederum der Master der Abhängigen /mnt/tmp/etc ist.

       Dann  wechseln  wir mit chroot(1) zu dem Verzeichnis /mnt, wodurch die Einhängung mit der Kennung 267 vom
       (neuen) Wurzelverzeichnis aus nicht mehr erreichbar ist:

           # chroot /mnt

       Wenn wir den Zustand der Einhängungen innerhalb der Chroot-Umgebung untersuchen, sehen wir folgendes:

           # cat /proc/self/mountinfo | sed 's/ - .*//'
           239 61 8:2 / / … shared:102
           248 239 0:4 / /proc … shared:5
           273 239 8:2 /etc /tmp/etc … master:105 propagate_from:102

       Oben sehen wir,  dass  die  Einhängung  mit  der  Kennung  273  eine  Abhängige  ist,  deren  Master  die
       Gemeinschaftsgruppe  105  ist.  Der Einhängepunkt für diesen Master kann nicht erreicht werden, und daher
       wird eine Markierung propagate_from angezeigt, die darauf  aufmerksam  macht,  dass  die  nahest-liegende
       dominante  Gemeinschaftsgruppe (d.h. der nächste erreichbare Einhängepunkt in der Abhängigkeitskette) die
       Gemeinschaftsgruppe mit der Kennung 102 ist (die dem Einhängepunkt /mnt entspricht, bevor  der  chroot(1)
       durchgeführt wurde.)

STANDARDS

       Linux.

GESCHICHTE

       Linux 2.4.19.

ANMERKUNGEN

       Der einer neuen Einhängung zugewiesene Weiterleitungstyp hängt vom Weiterleitungstyp der Elterneinhängung
       ab.  Falls  die Einhängung eine Elterneinhängung hat (d.h. der Einhängungspunkt ist nicht die Wurzel) und
       der Weiterleitungstyp der Elterneinhängung MS_SHARED  ist,  dann  ist  der  Weiterleitungstyp  der  neuen
       Einhängung auch MS_SHARED. Andernfalls ist der Einhängungstyp der neuen Einhängung MS_PRIVATE.

       Unbenommen  der  Tatsache,  dass  der  Standard-Weiterleitungstyp  für neue Einhängungen in vielen Fällen
       MS_PRIVATE  ist,  ist  MS_SHARED  normalerweise  nützlicher.  Aus  diesem  Grund  hängt  systemd(1)  beim
       Systemstart   alle   Einhängungen   neu   mit   MS_SHARED  ein.  Daher  ist  auf  modernen  Systemen  der
       Standard-Weiterleitungstyp in der Praxis MS_SHARED.

       Da bei der Verwendung von unshare(1) typischerweise das Ziel darin besteht, vollständige  Isolierung  der
       Einhängungen  in  dem  neuen  Namensraum  zu erreichen, kehrt unshare(1) (seit util-linux 2.27) den durch
       systemd(1) durchgeführten Schritt um, indem es in dem neuen  Namensraum  alle  Einhängungen  zu  privaten
       macht. Das bedeutet, unshare(1) führt das Äquivalent des folgenden Befehls im neuen Namensraum aus:

           mount --make-rprivate /

       Um dies zu verhindern, können Sie die Option --propagation unchanged für unshare(1) verwenden.

       Eine  Anwendung,  die  einen neuen Einhängenamensraum direkt mit clone(2) oder unshare(2) erzeugt, könnte
       den Wunsch haben, die Weiterleitung von Einhängeereignissen in andere Einhängenamensräume  zu  verhindern
       (wie  dies  durch  unshare(1) erfolgt). Dies kann durch Änderung des Einhängetyps von Einhängungen in dem
       neuen Namensraum auf entweder MS_SLAVE oder MS_PRIVATE erfolgen, indem ein Aufruf folgender Art erfolgt:

           mount(NULL, "/", MS_SLAVE | MS_REC, NULL);

       Für eine  Diskussion  von  Weiterleitungstypen  beim  Verschieben  von  Einhängungen  (MS_MOVE)  und  der
       Erstellung       von       Einhängungen      mit      der      Option      bind      (MS_BIND)      siehe
       Documentation/filesystems/sharedsubtree.rst.

   Beschränkungen für Einhängenamensräume
       Beachten Sie die folgenden Punkte in Hinblick auf Einhängenamensräume:

       [1]  Jeder Einhängenamensraum hat einen Eigentümer-Benutzernamensraum. Wie  oben  beschrieben  wird  beim
            Erstellen  eines  neuen  Einhängenamensraumes  seine Einhängeliste als Kopie der Einhängeliste eines
            anderen Einhängenamensraums initialisiert. Falls der neue Namensraum und der Namensraum, von dem die
            Einhängeliste  kopiert  wurde,  verschiedenen  Benutzernamensräumen  gehören,  dann  wird  der  neue
            Einhängenamensraum als weniger privilegiert betrachtet.

       [2]  Beim  Erstellen  eines  weniger privilegierten Einhängenamensraums werden gemeinsame Einhängungen zu
            abhängigen  Einhängungen  reduziert.  Dies  stellt  sicher,  dass  Abbildungen,   die   in   weniger
            privilegierten Namensräumen erfolgen, nicht in mehr privilegierte Namensräume weitergeleitet werden.

       [3]  Einhängungen,  die  als  gemeinsame Einheit von einem mehr privilegierten Einhängenamensraum kommen,
            werden zusammengeklemmt und können in einem weniger privilegierten Namensraum nicht getrennt werden.
            (Die   Aktion   unshare(2)   CLONE_NEWNS   bringt   alle   Einhängungen   von   dem   ursprünglichen
            Einhängenamensraum   als  gemeinsame  Einheit  herüber  und  rekursive  Einhängungen,  die  zwischen
            Einhängenamensräumen weiterleiten, werden als gemeinsame Einheit weitergeleitet.)

            In diesem Kontext bedeutet »können nicht getrennt werden«, dass  die  Einhängungen  zusammengeklemmt
            sind, so dass sie nicht einzeln ausgehängt werden können. Betrachten Sie folgendes Beispiel:

                $ sudo sh
                # mount --bind /dev/null /etc/shadow
                # cat /etc/shadow       # Ergibt keine Ausgabe

            Die  obigen  Schritte,  die in einem mehr privilegierten Einhängenamensraum ausgeführt werden, haben
            eine Einhängung mit der Option bind erstellt, die die Inhalte der Schatten-Passwortdatei /etc/shadow
            verdeckt. Aus Sicherheitsgründen sollte es nicht möglich sein, einen umount(2)  dieser  Einhängungen
            in einem weniger privilegierten Einhängenamensraum durchzuführen, da dies den Inhalt von /etc/shadow
            offenlegen würde.

            Nehmen  wir  an,  dass  wir  einen  Einhängenamensraum erstellen, der einem neuen Benutzernamensraum
            gehört.  Der  neue  Einhängenamensraum  wird  Kopien   aller   Einhängungen   von   dem   vorherigen
            Einhängenamensraum  erben. Allerdings werden diese Einhängungen zusammengeklemmt werden, da der neue
            Einhängenamensraum weniger privilegiert ist. Konsequenterweise wird ein Versuch, einen umount(2) der
            Einhängung durchzuführen, fehlschlagen, wie dies im folgenden Schritt zu sehen ist:

                # unshare --user --map-root-user --mount \
                               strace -o /tmp/log \
                               umount /mnt/dir
                umount: /etc/shadow: nicht eingehängt.
                # grep '^umount' /tmp/log
                umount2("/etc/shadow", 0)     = -1 EINVAL (Invalid argument)

            Die Fehlermeldung von mount(8) irritiert etwas, aber die Ausgabe  von  strace(1)  verrät,  dass  der
            zugrundeliegende Systemaufruf umount2(2) mit dem Fehler EINVAL fehlschlug. Der Kernel liefert diesen
            Fehler, um anzuzeigen, dass die Einhängung geklemmt ist.

            Beachten  Sie  allerdings,  dass eine Einhängung oben auf eine geerbte geklemmte Einhängung in einem
            weniger privilegierten Einhängenamensraum aufgesetzt oder von dort wieder entfernt werden kann:

                # echo 'aaaaa' > /tmp/a    # Datei, die auf /etc/shadow eingehängt werden soll
                # unshare --user --map-root-user --mount \
                    sh -c 'mount --bind /tmp/a /etc/shadow; cat /etc/shadow'
                aaaaa
                # umount /etc/shadow

            Der abschließende Befehl umount(8) oben, der im anfänglichen Einhängenamensraum  durchgeführt  wird,
            macht die ursprüngliche Datei /etc/shadow wieder in diesem Namensraum sichtbar.

       [4]  Beachten  Sie  anschließend  an Schritt [3], dass es möglich ist, einen umount(2) auf einen gesamten
            Unterbaum von Einhängungen, der als  Einheit  in  einen  weniger  privilegierten  Einhängenamensraum
            weitergeleitet wurde, durchzuführen. Das wird im nachfolgenden Beispiel dargestellt.

            Zuerst  erstellen  wir mittels unshare(1) einen neuen Benutzer- und Einhängenamensraum. In dem neuen
            Einhängenamensraum wird der Weiterleitungstyp aller Einhängungen auf privat gesetzt.  Wir  erstellen
            dann  eine  gemeinsame  Einhängung  mit  der  Option  bind  von  /mnt und eine kleine Hierarchie von
            Einhängungen unterhalb dieser Einhängung.

                $ PS1='ns1# ' sudo unshare --user --map-root-user \
                                       --mount --propagation private bash
                ns1# echo $$        # Wir benötigen die PID dieser Shell später
                778501
                ns1# mount --make-shared --bind /mnt /mnt
                ns1# mkdir /mnt/x
                ns1# mount --make-private -t tmpfs none /mnt/x
                ns1# mkdir /mnt/x/y
                ns1# mount --make-private -t tmpfs none /mnt/x/y
                ns1# grep /mnt /proc/self/mountinfo | sed 's/ - .*//'
                986 83 8:5 /mnt /mnt rw,relatime shared:344
                989 986 0:56 / /mnt/x rw,relatime
                990 989 0:57 / /mnt/x/y rw,relatime

            In der gleichen Shell-Sitzung fahren wir fort  und  erstellen  eine  zweite  Shell  in  einem  neuen
            Benutzernamensraum  und einen (weniger privilegierten) Einhängenamensraum und prüfen den Zustand der
            weitergeleiteten Einhängungen, deren Wurzel bei /mnt liegt.

                ns1# PS1='ns2# ' unshare --user --map-root-user \
                                       --mount --propagation unchanged bash
                ns2# grep /mnt /proc/self/mountinfo | sed 's/ - .*//'
                1239 1204 8:5 /mnt /mnt rw,relatime master:344
                1240 1239 0:56 / /mnt/x rw,relatime
                1241 1240 0:57 / /mnt/x/y rw,relatime

            Bemerkenswert in der obigen Ausgabe ist, dass der Weiterleitungstyp der  Einhängung  /mnt  zu  einer
            Abhängigen    reduziert    wurde,    wie    in   Schritt   [2]   erläutert.   Das   bedeutet,   dass
            Untereinhängungsereignisse vom Master in »ns1« weitergeleitet werden, aber Weiterleitungen nicht  in
            die umgekehrte Richtung erfolgen werden.

            In   einem   anderen   Terminalfenster   verwenden   wir   nsenter(1),   um   den  Einhängungs-  und
            Benutzernamensraum zu betreten, der »ns1« entspricht. In diesem Terminalfenster hängen wir  mit  der
            Option bind rekursiv /mnt/x am Ort /mnt/ppp ein.

                $ PS1='ns3# ' sudo nsenter -t 778501 --user --mount
                ns3# mount --rbind --make-private /mnt/x /mnt/ppp
                ns3# grep /mnt /proc/self/mountinfo | sed 's/ - .*//'
                986 83 8:5 /mnt /mnt rw,relatime shared:344
                989 986 0:56 / /mnt/x rw,relatime
                990 989 0:57 / /mnt/x/y rw,relatime
                1242 986 0:56 / /mnt/ppp rw,relatime
                1243 1242 0:57 / /mnt/ppp/y rw,relatime shared:518

            Da  der  Weiterleitungstyp der Elterneinhängung /mnt gemeinsam war, leitete die rekursive Einhängung
            mit der Option bind einen kleinen Unterbaum von Einhängungen unter der  abhängigen  Einhängung  /mnt
            nach »ns2« weiter. Dies kann durch Ausführen der folgenden Befehle in dieser Shell-Sitzung bestätigt
            werden:

                ns2# grep /mnt /proc/self/mountinfo | sed 's/ - .*//'
                1239 1204 8:5 /mnt /mnt rw,relatime master:344
                1240 1239 0:56 / /mnt/x rw,relatime
                1241 1240 0:57 / /mnt/x/y rw,relatime
                1244 1239 0:56 / /mnt/ppp rw,relatime
                1245 1244 0:57 / /mnt/ppp/y rw,relatime master:518

            Es  ist  zwar  nicht  möglich,  einen  umount(2)  auf  einen  Teil  des  weitergeleiteten Unterbaums
            (/mnt/ppp/y) in »ns2« durchzuführen, aber es ist möglich, einen umount(2) auf den gesamten Unterbaum
            durchzuführen. Dies wird durch die folgenden Befehle gezeigt:

                ns2# umount /mnt/ppp/y
                umount: /mnt/ppp/y: nicht eingehängt.
                ns2# umount -l /mnt/ppp | sed 's/ - .*//'      # Erfolgreich…
                ns2# grep /mnt /proc/self/mountinfo
                1239 1204 8:5 /mnt /mnt rw,relatime master:344
                1240 1239 0:56 / /mnt/x rw,relatime
                1241 1240 0:57 / /mnt/x/y rw,relatime

       [5]  Die Schalter MS_RDONLY, MS_NOSUID, MS_NOEXEC von  mount(2)  und  die  »atime«-Schalter-Einstellungen
            (MS_NOATIME,  MS_NODIRATIME, MS_RELATIME) werden geklemmt, wenn sie von einem mehr privilegierten in
            einen weniger privilegierten Einhängenamensraum weitergeleitet werden  und  dürfen  in  dem  weniger
            privilegierten Namensraum nicht geändert werden.

            Dieser  Punkt  wird  im  nachfolgenden  Beispiel  verdeutlicht.  Hier  erstellen  wir  in einem mehr
            privilegierten Einhängenamensraum eine Einhängung mit der Option bind, die als  nur-lesbar  markiert
            ist.  Aus  Sicherheitsgründen  sollte  es  nicht  möglich  sein,  die  Einhängung  in  einem weniger
            privilegierten Einhängenamensraum schreibbar zu machen und tatsächlich verhindert der Kernel das:

                $ sudo mkdir /mnt/dir
                $ sudo mount --bind -o ro /some/path /mnt/dir
                $ sudo unshare --user --map-root-user --mount \
                               mount -o remount,rw /mnt/dir
                mount: /mnt/dir: Zugriff verweigert.

       [6]  Eine Datei  oder  ein  Verzeichnis,  das  ein  Einhängepunkt  in  einem  Namensraum  ist,  der  kein
            Einhängepunkt  in  einem  anderen Namensraum ist, kann umbenannt, mit der Funktion »unlink« gelöscht
            oder in dem Einhängenamensraum, in  dem  er  kein  Einhängepunkt  ist,  gelöscht  (rmdir(2))  werden
            (abhängig  von den normalen Berechtigungsprüfungen). Konsequenterweise wird der Einhängepunkt in dem
            Einhängenamensraum, in dem er ein Einhängepunkt war, entfernt.

            Früher (vor Linux 3.18) führte der Versuch, eine Datei oder ein Verzeichnis, das  ein  Einhängepunkt
            in  einem  anderen  Namensraum  war,  mit »unlink« zu löschen, umzubenennen oder zu entfernen zu dem
            Fehler EBUSY. Dieses Verhalten hatte technische Probleme bei der Durchsetzung  (z.B.  für  NFS)  und
            ermöglichte  Diensteverweigerungsangriffe  gegen  mehr privilegierte Benutzer (d.h. Verhinderung der
            Aktualisierung einzelner Dateien durch Einhängungen mit der Option bind darüber).

BEISPIELE

       Siehe pivot_root(2).

SIEHE AUCH

       unshare(1),  clone(2),  mount(2),  mount_setattr(2),  pivot_root(2),  setns(2),  umount(2),   unshare(2),
       proc(5),   namespaces(7),  user_namespaces(7),  findmnt(8),  mount(8),  pam_namespace(8),  pivot_root(8),
       umount(8)

       Documentation/filesystems/sharedsubtree.rst im Kernelquellbaum.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder  neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn  Sie  Fehler  in  der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
       Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

Linux man-pages 6.9.1                             15. Juni 2024                              mount_namespaces(7)