小编Arn*_*zel的帖子

打开 /proc/<pid>/net/dev 可防止网络命名空间过期,这是预期的吗?

我正在寻找输入是否预期以下与网络命名空间到期相关的观察结果,或者应该报告为错误?

  • 当某个进程打开时,/proc/<pid>/net/dev它可以防止/延迟另一个进程的命名空间到期,直到它关闭此文件。这样做不需要成为该命名空间的一部分。

这似乎是非常令人惊讶的行为。它允许本地用户访问适当的proc文件来延迟/防止网络命名空间的 ve​​th 接口的破坏。一个有问题的监控工具打开文件/proc而不关闭它们也可能导致这种情况。

再生器

(在 Debian Buster - Linux 5.4.0-0.bpo.4-amd64 上)

1)创建网络命名空间:

$ unshare -n
$ echo $BASHPID
18807
Run Code Online (Sandbox Code Playgroud)

2)创建veth并将一端移动到上面创建的网络命名空间中

$ ip link add dev veth18807 type veth peer name eth18807           
$ ip link set eth18807 netns 18807
$ ip addr | grep veth
14: veth18807@if13: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
Run Code Online (Sandbox Code Playgroud)

3)tail -f /proc/18807/net/dev在单独的终端中启动

$ tail -f /proc/18807/net/dev
...
tail: /proc/18807/net/dev: file truncated
...leave …
Run Code Online (Sandbox Code Playgroud)

kernel container namespace veth firejail

5
推荐指数
0
解决办法
310
查看次数

标签 统计

container ×1

firejail ×1

kernel ×1

namespace ×1

veth ×1