![如何允许非 root 用户创建 tun 设备](https://linux22.com/image/165670/%E5%A6%82%E4%BD%95%E5%85%81%E8%AE%B8%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E5%88%9B%E5%BB%BA%20tun%20%E8%AE%BE%E5%A4%87.png)
我正在开发一个程序,需要打开/dev/net/tun
并发布ioctl()
它,但如果没有 root 用户,我的权限会被拒绝。我认为适当的 udev 规则可以帮助解决这个问题。我尝试使用该/etc/udev/rules.d/my_net_tun.rules
规则在文件中创建新的 udev 规则KERNEL=="tun", MODE="0666", SYMLINK+="static_node=net/tun"
,然后重新加载 udev 规则,但权限仍然被拒绝。我认为我的规则可能有问题。我怎样才能解决这个问题?
答案1
这还不够。即使进程能够打开/dev/net/tun
,它也应该具有CAP_NET_ADMIN
创建新的 tun/tap 设备或为其分配所有者的能力。
这在tuntap.rst
来自内核文档的文件。