GNU/Linux >> Znalost Linux >  >> Linux

Proč je moje připojení připojení viditelné mimo jeho jmenný prostor připojení?

Pokud používáte distribuci založenou na systemd s util-linux verze nižší než 2.27, uvidíte toto neintuitivní chování. Důvodem je CLONE_NEWNS šíří příznaky jako shared v závislosti na nastavení v jádře. Toto nastavení je obvykle private , ale systemd to změní na shared . Ke dni util-linux 2.27 byl vytvořen patch, který mění výchozí chování unshare příkaz použít private jako výchozí chování šíření, aby bylo intuitivnější.

Řešení

Pokud používáte systém systemd s util-linux před verzí 2.27 musíte znovu připojit kořenový souborový systém po spuštění unshare příkaz:

# unshare --mount -- /bin/bash
# mount --make-private -o remount /

Pokud používáte systém systemd s util-linux verze 2.27 nebo novější, mělo by to fungovat podle očekávání v příkladu, který jste uvedli ve své otázce, doslovně, bez nutnosti opětovného připojení. Pokud ne, předejte --propagation private na unshare příkaz k vynucení propagace jmenného prostoru připojení, aby byl soukromý.


Linux
  1. Bind Mount?

  2. Proč je proměnná viditelná v podslupce?

  3. Only Root Can Mount, proč?

  1. Proč při volání bind() přetypujeme sockaddr_in na sockaddr?

  2. Přinutit ext4lazyinit dokončit svou věc?

  3. Vypsat pouze připojení připojení

  1. Proč je můj souborový systém připojen pouze pro čtení?

  2. Zobrazení/manipulace jmenných prostorů připojení v Linuxu

  3. Proč je Linux podobný Unixu, když je jeho jádro monolitické?