如果没有根权限,请不要惊慌
作者: pfactum创建于 2022年10月13日更新于 2023年12月17日
由于 `systemd` (或类似的系统管理器) 已经可用,因此可以使用非常有限的权限,以非根用户的身份运行 `iodined` (甚至是动态生成的用户),通过 `AmbientCapabilities=` 来授予额外的功能。因此,应避免在 `check_superuser()` 中无条件地崩溃。因此,至少在 Linux 上,应对所需的功能进行检查 (为此有 `libcap-ng`)。要创建一个 tun 设备,需要 `CAP_NET_ADMIN`;要绑定到端口 53,需要 `CAP_NET_BIND_SERVICE`;要更改用户,需要 `CAP_SETUID` 和 `CAP_SETGID`。
内容来源: yarrick/iodine