# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-03-01 17:02+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount_namespaces" msgstr "" #. type: TH #: archlinux fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: archlinux fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "mount_namespaces - overview of Linux mount namespaces" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "For an overview of namespaces, see B(7)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Mount namespaces provide isolation of the list of mounts seen by the " "processes in each namespace instance. Thus, the processes in each of the " "mount namespace instances will see distinct single-directory hierarchies." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The views provided by the IpidI, IpidI, " "and IpidI files (all described in B(5)) " "correspond to the mount namespace in which the process with the PID I " "resides. (All of the processes that reside in the same mount namespace will " "see the same view in these files.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A new mount namespace is created using either B(2) or B(2) " "with the B flag. When a new mount namespace is created, its " "mount list is initialized as follows:" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "\\[bu]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the namespace is created using B(2), the mount list of the child's " "namespace is a copy of the mount list in the parent process's mount " "namespace." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the namespace is created using B(2), the mount list of the new " "namespace is a copy of the mount list in the caller's previous mount " "namespace." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Subsequent modifications to the mount list (B(2) and B(2)) " "in either mount namespace will not (by default) affect the mount list seen " "in the other namespace (but see the following discussion of shared subtrees)." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SHARED SUBTREES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "After the implementation of mount namespaces was completed, experience " "showed that the isolation that they provided was, in some cases, too great. " "For example, in order to make a newly loaded optical disk available in all " "mount namespaces, a mount operation was required in each namespace. For " "this use case, and others, the shared subtree feature was introduced in " "Linux 2.6.15. This feature allows for automatic, controlled propagation of " "B(2) and B(2) I between namespaces (or, more " "precisely, between the mounts that are members of a I that are " "propagating events to one another)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Each mount is marked (via B(2)) as having one of the following " "I:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This mount shares events with members of a peer group. B(2) and " "B(2) events immediately under this mount will propagate to the " "other mounts that are members of the peer group. I here means " "that the same B(2) or B(2) will automatically occur under " "all of the other mounts in the peer group. Conversely, B(2) and " "B(2) events that take place under peer mounts will propagate to " "this mount." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This mount is private; it does not have a peer group. B(2) and " "B(2) events do not propagate into or out of this mount." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(2) and B(2) events propagate into this mount from a " "(master) shared peer group. B(2) and B(2) events under " "this mount do not propagate to any peer." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Note that a mount can be the slave of another peer group while at the same " "time sharing B(2) and B(2) events with a peer group of " "which it is a member. (More precisely, one peer group can be the slave of " "another peer group.)" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is like a private mount, and in addition this mount can't be bind " "mounted. Attempts to bind mount this mount (B(2) with the " "B flag) will fail." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When a recursive bind mount (B(2) with the B and B " "flags) is performed on a directory subtree, any bind mounts within the " "subtree are automatically pruned (i.e., not replicated) when replicating " "that subtree to produce the target subtree." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For a discussion of the propagation type assigned to a new mount, see NOTES." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The propagation type is a per-mount-point setting; some mounts may be marked " "as shared (with each shared mount being a member of a distinct peer group), " "while others are private (or slaved or unbindable)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Note that a mount's propagation type determines whether B(2) and " "B(2) of mounts I the mount are propagated. " "Thus, the propagation type does not affect propagation of events for " "grandchildren and further removed descendant mounts. What happens if the " "mount itself is unmounted is determined by the propagation type that is in " "effect for the I of the mount." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Members are added to a I when a mount is marked as shared and " "either:" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(a)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "the mount is replicated during the creation of a new mount namespace; or" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(b)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "a new bind mount is created from the mount." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In both of these cases, the new mount joins the peer group of which the " "existing mount is a member." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A new peer group is also created when a child mount is created under an " "existing mount that is marked as shared. In this case, the new child mount " "is also marked as shared and the resulting peer group consists of all the " "mounts that are replicated under the peers of parent mounts." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A mount ceases to be a member of a peer group when either the mount is " "explicitly unmounted, or when the mount is implicitly unmounted because a " "mount namespace is removed (because it has no more member processes)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The propagation type of the mounts in a mount namespace can be discovered " "via the \"optional fields\" exposed in IpidI. (See " "B(5) for details of this file.) The following tags can appear in the " "optional fields for a record in that file:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This mount is shared in peer group I. Each peer group has a unique ID " "that is automatically generated by the kernel, and all mounts in the same " "peer group will show the same ID. (These IDs are assigned starting from the " "value 1, and may be recycled when a peer group ceases to have any members.)" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This mount is a slave to shared peer group I." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.26)" msgstr "" #. commit 97e7e0f71d6d948c25f11f0a33878d9356d9579e #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This mount is a slave and receives propagation from shared peer group I. " "This tag will always appear in conjunction with a I tag. Here, " "I is the closest dominant peer group under the process's root directory. " "If I is the immediate master of the mount, or if there is no dominant " "peer group under the same root, then only the I field is present " "and not the I field. For further details, see below." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is an unbindable mount." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "If none of the above tags is present, then this is a private mount." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "MS_SHARED and MS_PRIVATE example" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Suppose that on a terminal in the initial mount namespace, we mark one mount " "as shared and another as private, and then view the mounts in I:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh1# B\n" "sh1# B\n" "sh1# B\n" "77 61 8:17 / /mntS rw,relatime shared:1\n" "83 61 8:15 / /mntP rw,relatime\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "From the I output, we see that I is a shared " "mount in peer group 1, and that I has no optional tags, indicating " "that it is a private mount. The first two fields in each record in this " "file are the unique ID for this mount, and the mount ID of the parent " "mount. We can further inspect this file to see that the parent mount of I and I is the root directory, I, which is mounted as private:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh1# B\n" "61 0 8:2 / / rw,relatime\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On a second terminal, we create a new mount namespace where we run a second " "shell and inspect the mounts:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B\n" "sh2# B\n" "222 145 8:17 / /mntS rw,relatime shared:1\n" "225 145 8:15 / /mntP rw,relatime\n" msgstr "" #. Since util-linux 2.27 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The new mount namespace received a copy of the initial mount namespace's " "mounts. These new mounts maintain the same propagation types, but have " "unique mount IDs. (The I<--propagation\\~unchanged> option prevents " "B(1) from marking all mounts as private when creating a new mount " "namespace, which it does by default.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the second terminal, we then create submounts under each of I and " "I and inspect the set-up:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh2# B\n" "sh2# B\n" "sh2# B\n" "sh2# B\n" "sh2# B\n" "222 145 8:17 / /mntS rw,relatime shared:1\n" "225 145 8:15 / /mntP rw,relatime\n" "178 222 8:22 / /mntS/a rw,relatime shared:2\n" "230 225 8:23 / /mntP/b rw,relatime\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "From the above, it can be seen that I was created as shared " "(inheriting this setting from its parent mount) and I was created " "as a private mount." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Returning to the first terminal and inspecting the set-up, we see that the " "new mount created under the shared mount I propagated to its peer " "mount (in the initial mount namespace), but the new mount created under the " "private mount I did not propagate:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh1# B\n" "77 61 8:17 / /mntS rw,relatime shared:1\n" "83 61 8:15 / /mntP rw,relatime\n" "179 77 8:22 / /mntS/a rw,relatime shared:2\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "MS_SLAVE example" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Making a mount a slave allows it to receive propagated B(2) and " "B(2) events from a master shared peer group, while preventing it " "from propagating events to that master. This is useful if we want to (say) " "receive a mount event when an optical disk is mounted in the master shared " "peer group (in another mount namespace), but want to prevent B(2) " "and B(2) events under the slave mount from having side effects in " "other namespaces." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "We can demonstrate the effect of slaving by first marking two mounts as " "shared in the initial mount namespace:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh1# B\n" "sh1# B\n" "sh1# B\n" "132 83 8:23 / /mntX rw,relatime shared:1\n" "133 83 8:22 / /mntY rw,relatime shared:2\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On a second terminal, we create a new mount namespace and inspect the mounts:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh2# B\n" "sh2# B\n" "168 167 8:23 / /mntX rw,relatime shared:1\n" "169 167 8:22 / /mntY rw,relatime shared:2\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "In the new mount namespace, we then mark one of the mounts as a slave:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh2# B\n" "sh2# B\n" "168 167 8:23 / /mntX rw,relatime shared:1\n" "169 167 8:22 / /mntY rw,relatime master:2\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "From the above output, we see that I is now a slave mount that is " "receiving propagation events from the shared peer group with the ID 2." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Continuing in the new namespace, we create submounts under each of I " "and I:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh2# B\n" "sh2# B\n" "sh2# B\n" "sh2# B\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When we inspect the state of the mounts in the new mount namespace, we see " "that I was created as a new shared mount (inheriting the \"shared\" " "setting from its parent mount) and I was created as a private mount:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh2# B\n" "168 167 8:23 / /mntX rw,relatime shared:1\n" "169 167 8:22 / /mntY rw,relatime master:2\n" "173 168 8:3 / /mntX/a rw,relatime shared:3\n" "175 169 8:5 / /mntY/b rw,relatime\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Returning to the first terminal (in the initial mount namespace), we see " "that the mount I propagated to the peer (the shared I), but " "the mount I was not propagated:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh1# B\n" "132 83 8:23 / /mntX rw,relatime shared:1\n" "133 83 8:22 / /mntY rw,relatime shared:2\n" "174 132 8:3 / /mntX/a rw,relatime shared:3\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Now we create a new mount under I in the first shell:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh1# B\n" "sh1# B\n" "sh1# B\n" "132 83 8:23 / /mntX rw,relatime shared:1\n" "133 83 8:22 / /mntY rw,relatime shared:2\n" "174 132 8:3 / /mntX/a rw,relatime shared:3\n" "178 133 8:1 / /mntY/c rw,relatime shared:4\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When we examine the mounts in the second mount namespace, we see that in " "this case the new mount has been propagated to the slave mount, and that the " "new mount is itself a slave mount (to peer group 4):" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "sh2# B\n" "168 167 8:23 / /mntX rw,relatime shared:1\n" "169 167 8:22 / /mntY rw,relatime master:2\n" "173 168 8:3 / /mntX/a rw,relatime shared:3\n" "175 169 8:5 / /mntY/b rw,relatime\n" "179 169 8:1 / /mntY/c rw,relatime master:4\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "MS_UNBINDABLE example" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "One of the primary purposes of unbindable mounts is to avoid the \"mount " "explosion\" problem when repeatedly performing bind mounts of a higher-level " "subtree at a lower-level mount. The problem is illustrated by the following " "shell session." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Suppose we have a system with the following mounts:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "/dev/sda1 on /\n" "/dev/sdb6 on /mntX\n" "/dev/sdb7 on /mntY\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Suppose furthermore that we wish to recursively bind mount the root " "directory under several users' home directories. We do this for the first " "user, and inspect the mounts:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "# B\n" "/dev/sda1 on /\n" "/dev/sdb6 on /mntX\n" "/dev/sdb7 on /mntY\n" "/dev/sda1 on /home/cecilia\n" "/dev/sdb6 on /home/cecilia/mntX\n" "/dev/sdb7 on /home/cecilia/mntY\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When we repeat this operation for the second user, we start to see the " "explosion problem:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "# B\n" "/dev/sda1 on /\n" "/dev/sdb6 on /mntX\n" "/dev/sdb7 on /mntY\n" "/dev/sda1 on /home/cecilia\n" "/dev/sdb6 on /home/cecilia/mntX\n" "/dev/sdb7 on /home/cecilia/mntY\n" "/dev/sda1 on /home/henry\n" "/dev/sdb6 on /home/henry/mntX\n" "/dev/sdb7 on /home/henry/mntY\n" "/dev/sda1 on /home/henry/home/cecilia\n" "/dev/sdb6 on /home/henry/home/cecilia/mntX\n" "/dev/sdb7 on /home/henry/home/cecilia/mntY\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Under I, we have not only recursively added the I and I mounts, but also the recursive mounts of those directories under I that were created in the previous step. Upon repeating the " "step for a third user, it becomes obvious that the explosion is exponential " "in nature:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "# B\n" "/dev/sda1 on /\n" "/dev/sdb6 on /mntX\n" "/dev/sdb7 on /mntY\n" "/dev/sda1 on /home/cecilia\n" "/dev/sdb6 on /home/cecilia/mntX\n" "/dev/sdb7 on /home/cecilia/mntY\n" "/dev/sda1 on /home/henry\n" "/dev/sdb6 on /home/henry/mntX\n" "/dev/sdb7 on /home/henry/mntY\n" "/dev/sda1 on /home/henry/home/cecilia\n" "/dev/sdb6 on /home/henry/home/cecilia/mntX\n" "/dev/sdb7 on /home/henry/home/cecilia/mntY\n" "/dev/sda1 on /home/otto\n" "/dev/sdb6 on /home/otto/mntX\n" "/dev/sdb7 on /home/otto/mntY\n" "/dev/sda1 on /home/otto/home/cecilia\n" "/dev/sdb6 on /home/otto/home/cecilia/mntX\n" "/dev/sdb7 on /home/otto/home/cecilia/mntY\n" "/dev/sda1 on /home/otto/home/henry\n" "/dev/sdb6 on /home/otto/home/henry/mntX\n" "/dev/sdb7 on /home/otto/home/henry/mntY\n" "/dev/sda1 on /home/otto/home/henry/home/cecilia\n" "/dev/sdb6 on /home/otto/home/henry/home/cecilia/mntX\n" "/dev/sdb7 on /home/otto/home/henry/home/cecilia/mntY\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The mount explosion problem in the above scenario can be avoided by making " "each of the new mounts unbindable. The effect of doing this is that " "recursive mounts of the root directory will not replicate the unbindable " "mounts. We make such a mount for the first user:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "# B\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Before going further, we show that unbindable mounts are indeed unbindable:" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "# B\n" "mount: wrong fs type, bad option, bad superblock on /home/cecilia,\n" " missing codepage or helper program, or other error\n" "\\&\n" " In some cases useful info is found in syslog - try\n" " dmesg | tail or so.\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Now we create unbindable recursive bind mounts for the other two users:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "# B\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Upon examining the list of mounts, we see there has been no explosion of " "mounts, because the unbindable mounts were not replicated under each user's " "directory:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "/dev/sda1 on /\n" "/dev/sdb6 on /mntX\n" "/dev/sdb7 on /mntY\n" "/dev/sda1 on /home/cecilia\n" "/dev/sdb6 on /home/cecilia/mntX\n" "/dev/sdb7 on /home/cecilia/mntY\n" "/dev/sda1 on /home/henry\n" "/dev/sdb6 on /home/henry/mntX\n" "/dev/sdb7 on /home/henry/mntY\n" "/dev/sda1 on /home/otto\n" "/dev/sdb6 on /home/otto/mntX\n" "/dev/sdb7 on /home/otto/mntY\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Propagation type transitions" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following table shows the effect that applying a new propagation type (i." "e., I) has on the existing propagation type of a " "mount. The rows correspond to existing propagation types, and the columns " "are the new propagation settings. For reasons of space, \"private\" is " "abbreviated as \"priv\" and \"unbindable\" as \"unbind\"." msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "make-shared" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "make-slave" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "make-priv" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "make-unbind" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "_" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "shared" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "slave/priv [1]" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "priv" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "unbind" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "slave" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "slave+shared" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "slave [2]" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "private" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "priv [2]" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "unbindable" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "unbind [2]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Note the following details to the table:" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[1]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If a shared mount is the only mount in its peer group, making it a slave " "automatically makes it private." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[2]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Slaving a nonshared mount has no effect on the mount." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Bind (MS_BIND) semantics" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Suppose that the following command is performed:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount --bind A/a B/b\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Here, I is the source mount, I is the destination mount, I is a " "subdirectory path under the mount point I, and I is a subdirectory " "path under the mount point I. The propagation type of the resulting " "mount, I, depends on the propagation types of the mounts I and I, " "and is summarized in the following table." msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "source(A)" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "dest(B)" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "invalid" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "nonshared" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Note that a recursive bind of a subtree follows the same semantics as for a " "bind operation on each mount in the subtree. (Unbindable mounts are " "automatically pruned at the target mount point.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For further details, see I in " "the kernel source tree." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Move (MS_MOVE) semantics" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount --move A B/b\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Here, I is the source mount, I is the destination mount, and I is a " "subdirectory path under the mount point I. The propagation type of the " "resulting mount, I, depends on the propagation types of the mounts I " "and I, and is summarized in the following table." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Note: moving a mount that resides under a shared mount is invalid." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Mount semantics" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Suppose that we use the following command to create a mount:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount device B/b\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Here, I is the destination mount, and I is a subdirectory path under " "the mount point I. The propagation type of the resulting mount, I, " "follows the same rules as for a bind mount, where the propagation type of " "the source mount is considered always to be private." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Unmount semantics" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Suppose that we use the following command to tear down a mount:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "umount A\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Here, I is a mount on I, where I is the parent mount and I is " "a subdirectory path under the mount point I. If B is shared, then all " "most-recently-mounted mounts at I on mounts that receive propagation from " "mount I and do not have submounts under them are unmounted." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "The /proc/ pid /mountinfo propagate_from tag" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I tag is shown in the optional fields of a IpidI record in cases where a process can't see a slave's " "immediate master (i.e., the pathname of the master is not reachable from the " "filesystem root directory) and so cannot determine the chain of propagation " "between the mounts it can see." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the following example, we first create a two-link master-slave chain " "between the mounts I, I, and I. Then the " "B(1) command is used to make the I mount point " "unreachable from the root directory, creating a situation where the master " "of I is not reachable from the (new) root directory of the " "process." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "First, we bind mount the root directory onto I and then bind mount I at I so that after the later B(1) the B(5) " "filesystem remains visible at the correct location in the chroot-ed " "environment." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "# B\n" "# B\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Next, we ensure that the I mount is a shared mount in a new peer group " "(with no peers):" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B # Isolate from any previous peer group\n" "# B\n" "# B\n" "239 61 8:2 / /mnt ... shared:102\n" "248 239 0:4 / /mnt/proc ... shared:5\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Next, we bind mount I onto I:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "# B\n" "# B\n" "239 61 8:2 / /mnt ... shared:102\n" "248 239 0:4 / /mnt/proc ... shared:5\n" "267 40 8:2 /etc /tmp/etc ... shared:102\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Initially, these two mounts are in the same peer group, but we then make the " "I a slave of I, and then make I shared as " "well, so that it can propagate events to the next slave in the chain:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "# B\n" "# B\n" "239 61 8:2 / /mnt ... shared:102\n" "248 239 0:4 / /mnt/proc ... shared:5\n" "267 40 8:2 /etc /tmp/etc ... shared:105 master:102\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Then we bind mount I onto I. Again, the two mounts " "are initially in the same peer group, but we then make I a " "slave of I:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "# B\n" "# B\n" "# B\n" "239 61 8:2 / /mnt ... shared:102\n" "248 239 0:4 / /mnt/proc ... shared:5\n" "267 40 8:2 /etc /tmp/etc ... shared:105 master:102\n" "273 239 8:2 /etc /mnt/tmp/etc ... master:105\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "From the above, we see that I is the master of the slave I, " "which in turn is the master of the slave I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "We then B(1) to the I directory, which renders the mount with " "ID 267 unreachable from the (new) root directory:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "# B\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When we examine the state of the mounts inside the chroot-ed environment, we " "see the following:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" "239 61 8:2 / / ... shared:102\n" "248 239 0:4 / /proc ... shared:5\n" "273 239 8:2 /etc /tmp/etc ... master:105 propagate_from:102\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Above, we see that the mount with ID 273 is a slave whose master is the peer " "group 105. The mount point for that master is unreachable, and so a " "I tag is displayed, indicating that the closest dominant " "peer group (i.e., the nearest reachable mount in the slave chain) is the " "peer group with the ID 102 (corresponding to the I mount point before " "the B(1) was performed)." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "Linux." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "Linux 2.4.19." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The propagation type assigned to a new mount depends on the propagation type " "of the parent mount. If the mount has a parent (i.e., it is a non-root " "mount point) and the propagation type of the parent is B, then " "the propagation type of the new mount is also B. Otherwise, the " "propagation type of the new mount is B." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Notwithstanding the fact that the default propagation type for new mount is " "in many cases B, B is typically more useful. For " "this reason, B(1) automatically remounts all mounts as " "B on system startup. Thus, on most modern systems, the default " "propagation type is in practice B." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed msgid "" "Since, when one uses B(1) to create a mount namespace, the goal is " "commonly to provide full isolation of the mounts in the new namespace, " "B(1) (since I 2.27) in turn reverses the step " "performed by B(1), by making all mounts private in the new " "namespace. That is, B(1) performs the equivalent of the following " "in the new mount namespace:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount --make-rprivate /\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "To prevent this, one can use the I<--propagation\\~unchanged> option to " "B(1)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An application that creates a new mount namespace directly using " "B(2) or B(2) may desire to prevent propagation of mount " "events to other mount namespaces (as is done by B(1)). This can be " "done by changing the propagation type of mounts in the new namespace to " "either B or B, using a call such as the following:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount(NULL, \"/\", MS_SLAVE | MS_REC, NULL);\n" msgstr "" # #. ============================================================ #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For a discussion of propagation types when moving mounts (B) and " "creating bind mounts (B), see I." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Restrictions on mount namespaces" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Note the following points with respect to mount namespaces:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Each mount namespace has an owner user namespace. As explained above, when " "a new mount namespace is created, its mount list is initialized as a copy of " "the mount list of another mount namespace. If the new namespace and the " "namespace from which the mount list was copied are owned by different user " "namespaces, then the new mount namespace is considered I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When creating a less privileged mount namespace, shared mounts are reduced " "to slave mounts. This ensures that mappings performed in less privileged " "mount namespaces will not propagate to more privileged mount namespaces." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[3]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Mounts that come as a single unit from a more privileged mount namespace are " "locked together and may not be separated in a less privileged mount " "namespace. (The B(2) B operation brings across all " "of the mounts from the original mount namespace as a single unit, and " "recursive mounts that propagate between mount namespaces propagate as a " "single unit.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In this context, \"may not be separated\" means that the mounts are locked " "so that they may not be individually unmounted. Consider the following " "example:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B\n" "# B\n" "# B # Produces no output\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The above steps, performed in a more privileged mount namespace, have " "created a bind mount that obscures the contents of the shadow password file, " "I. For security reasons, it should not be possible to " "B(2) that mount in a less privileged mount namespace, since that " "would reveal the contents of I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Suppose we now create a new mount namespace owned by a new user namespace. " "The new mount namespace will inherit copies of all of the mounts from the " "previous mount namespace. However, those mounts will be locked because the " "new mount namespace is less privileged. Consequently, an attempt to " "B(2) the mount fails as show in the following step:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B\n" " B\n" " B\n" "umount: /etc/shadow: not mounted.\n" "# B\n" "umount2(\"/etc/shadow\", 0) = -1 EINVAL (Invalid argument)\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The error message from B(8) is a little confusing, but the " "B(1) output reveals that the underlying B(2) system call " "failed with the error B, which is the error that the kernel returns " "to indicate that the mount is locked." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Note, however, that it is possible to stack (and unstack) a mount on top of " "one of the inherited locked mounts in a less privileged mount namespace:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "# B /tmp/a> # File to mount onto /etc/shadow\n" "# B\n" " B\n" "aaaaa\n" "# B\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The final B(8) command above, which is performed in the initial " "mount namespace, makes the original I file once more visible in " "that namespace." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[4]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Following on from point [3], note that it is possible to B(2) an " "entire subtree of mounts that propagated as a unit into a less privileged " "mount namespace, as illustrated in the following example." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "First, we create new user and mount namespaces using B(1). In the " "new mount namespace, the propagation type of all mounts is set to private. " "We then create a shared bind mount at I, and a small hierarchy of " "mounts underneath that mount." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B\n" " B<--mount --propagation private bash>\n" "ns1# B # We need the PID of this shell later\n" "778501\n" "ns1# B\n" "ns1# B\n" "ns1# B\n" "ns1# B\n" "ns1# B\n" "ns1# B\n" "986 83 8:5 /mnt /mnt rw,relatime shared:344\n" "989 986 0:56 / /mnt/x rw,relatime\n" "990 989 0:57 / /mnt/x/y rw,relatime\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Continuing in the same shell session, we then create a second shell in a new " "user namespace and a new (less privileged) mount namespace and check the " "state of the propagated mounts rooted at I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "ns1# B\n" " B<--mount --propagation unchanged bash>\n" "ns2# B\n" "1239 1204 8:5 /mnt /mnt rw,relatime master:344\n" "1240 1239 0:56 / /mnt/x rw,relatime\n" "1241 1240 0:57 / /mnt/x/y rw,relatime\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Of note in the above output is that the propagation type of the mount I has been reduced to slave, as explained in point [2]. This means that " "submount events will propagate from the master I in \"ns1\", but " "propagation will not occur in the opposite direction." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "From a separate terminal window, we then use B(1) to enter the " "mount and user namespaces corresponding to \"ns1\". In that terminal " "window, we then recursively bind mount I at the location I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B\n" "ns3# B\n" "ns3# B\n" "986 83 8:5 /mnt /mnt rw,relatime shared:344\n" "989 986 0:56 / /mnt/x rw,relatime\n" "990 989 0:57 / /mnt/x/y rw,relatime\n" "1242 986 0:56 / /mnt/ppp rw,relatime\n" "1243 1242 0:57 / /mnt/ppp/y rw,relatime shared:518\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Because the propagation type of the parent mount, I, was shared, the " "recursive bind mount propagated a small subtree of mounts under the slave " "mount I into \"ns2\", as can be verified by executing the following " "command in that shell session:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "ns2# B\n" "1239 1204 8:5 /mnt /mnt rw,relatime master:344\n" "1240 1239 0:56 / /mnt/x rw,relatime\n" "1241 1240 0:57 / /mnt/x/y rw,relatime\n" "1244 1239 0:56 / /mnt/ppp rw,relatime\n" "1245 1244 0:57 / /mnt/ppp/y rw,relatime master:518\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "While it is not possible to B(2) a part of the propagated subtree " "(I) in \"ns2\", it is possible to B(2) the entire " "subtree, as shown by the following commands:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "ns2# B\n" "umount: /mnt/ppp/y: not mounted.\n" "ns2# B # Succeeds...\n" "ns2# B\n" "1239 1204 8:5 /mnt /mnt rw,relatime master:344\n" "1240 1239 0:56 / /mnt/x rw,relatime\n" "1241 1240 0:57 / /mnt/x/y rw,relatime\n" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[5]" msgstr "" # #. commit 9566d6742852c527bf5af38af5cbb878dad75705 #. Author: Eric W. Biederman #. Date: Mon Jul 28 17:26:07 2014 -0700 #. mnt: Correct permission checks in do_remount #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B(2) flags B, B, B, and the " "\"atime\" flags (B, B, B) settings " "become locked when propagated from a more privileged to a less privileged " "mount namespace, and may not be changed in the less privileged mount " "namespace." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This point is illustrated in the following example where, in a more " "privileged mount namespace, we create a bind mount that is marked as read-" "only. For security reasons, it should not be possible to make the mount " "writable in a less privileged mount namespace, and indeed the kernel " "prevents this:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B\n" "$ B\n" "$ B\n" " B\n" "mount: /mnt/dir: permission denied.\n" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[6]" msgstr "" #. (As of 3.18-rc1 (in Al Viro's 2014-08-30 vfs.git#for-next tree)) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A file or directory that is a mount point in one namespace that is not a " "mount point in another namespace, may be renamed, unlinked, or removed " "(B(2)) in the mount namespace in which it is not a mount point " "(subject to the usual permission checks). Consequently, the mount point is " "removed in the mount namespace where it was a mount point." msgstr "" # #. mtk: The change was in Linux 3.18, I think, with this commit: #. commit 8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe #. Author: Eric W. Biederman #. Date: Tue Oct 1 18:33:48 2013 -0700 #. vfs: Lazily remove mounts on unlinked files and directories. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Previously (before Linux 3.18), attempting to unlink, rename, or remove a " "file or directory that was a mount point in another mount namespace would " "result in the error B. That behavior had technical problems of " "enforcement (e.g., for NFS) and permitted denial-of-service attacks against " "more privileged users (i.e., preventing individual files from being updated " "by bind mounting on top of them)." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "See B(2)." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(1), B(2), B(2), B(2), " "B(2), B(2), B(2), B(2), B(5), " "B(7), B(7), B(8), B(8), " "B(8), B(8), B(8)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I in the kernel source tree." msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-10" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "# B\n" "# B\n" "mount: wrong fs type, bad option, bad superblock on /home/cecilia,\n" " missing codepage or helper program, or other error\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " In some cases useful info is found in syslog - try\n" " dmesg | tail or so.\n" msgstr "" #. type: SH #: debian-bookworm #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: debian-bookworm msgid "Mount namespaces first appeared in Linux 2.4.19." msgstr "" #. type: Plain text #: debian-bookworm msgid "Namespaces are a Linux-specific feature." msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "Since, when one uses\n" "B(1)\n" "to create a mount namespace,\n" "the goal is commonly to provide full isolation of the mounts\n" "in the new namespace,\n" "B(1)\n" "(since\n" "I\n" " 2.27) in turn reverses the step performed by\n" "B(1),\n" "by making all mounts private in the new namespace.\n" "That is,\n" "B(1)\n" "performs the equivalent of the following in the new mount namespace:\n" msgstr "" #. type: TH #: debian-unstable opensuse-tumbleweed #, no-wrap msgid "2023-05-03" msgstr "" #. type: TH #: debian-unstable opensuse-tumbleweed #, no-wrap msgid "Linux man-pages 6.05.01" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr ""