Die ip netns
erstellt den Verweis auf den (named) Netzwerknamespace in /var/run/ns
, die leicht verfolgt werden konnte. Dasselbe könnte auch durch /proc/[pid]/ns/net
bestimmt werden. Es ist jedoch möglich, dass ein benutzerdefiniertes Programm ein Netz erstellt und den entsprechenden Inode an einem anderen unkonventionellen Ort speichert. Dies kann es schwierig machen, zu bestimmen, ob es Netzwerke gibt, die wir auflisten könnten oder nicht.Linux-Namespaces: Ist es möglich, dass ein Netzwerknamespace existiert, ohne mit einem Prozess verbunden zu sein?
Zweitens zerstört unshare <cmd>
das net ns, wenn der Prozess beendet, was in Ordnung ist. ip netns exec <netns> <cmd>
behält die ns jedoch auch nach dem Beenden des Befehls/Prozesses bei. Ich glaube, es könnte für jedes benutzerdefinierte Programm möglich sein, dasselbe zu tun.
Daher ist die Frage: Ist es möglich, dass ein benutzerdefiniertes Programm erstellt ein unbenanntes net ns, und es ist nicht zugeordnet mit einem Prozess?
Ist es außerdem möglich, solche (versteckten) Netze aus user-space aufzulisten, da wir die Pfade zu den Inodes nicht kennen? (Der Kernel hat natürlich eine verkettete Liste der Net-ns) Ein Code-Snippet wird hilfreich sein.
Würde mehr Antworten zu schätzen wissen. Jemand? Vielen Dank! – user31986