我可以设置一个持久的 Linux Tap 接口,并使其由特定用户和组拥有,其中之一是:
tunctl -u someuser -g somegroup -t example.tap
ip tuntap add dev example.tap mode tap user someuser group somegroup
我可以确认该界面是否存在并查看有关它的一些信息
ip link list dev example.tap
但事后我如何才能找出该界面属于哪个用户或组呢? ip tuntap
似乎记录很少,并且ip link list
似乎没有显示所有权。
答案1
一个答案这个问题建议查看 /sys/,这很有帮助。例如:
cat /sys/class/net/example.tap/owner
显示拥有用户的 uid,如果该接口不属于用户,则显示 -1。类似地,用group
替换 来owner
获得组所有权。我不确定是否有一种“更干净”的方法不涉及深入研究内核文件系统。
答案2
ip(8)
使用(未记录的)选项运行-d
:
$ sudo ip tuntap add dev tap0 mode tap user ben
$ ip -d link show tap0
40: tap0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether c9:63:71:fa:8f:04 brd ff:ff:ff:ff:ff:ff promiscuity 0
tun type tap pi off vnet_hdr off persist on user ben addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
注意user ben
最后一行。