我有一个使用 Libnl 并尝试通过 netlink 套接字设置一些 qdisc 的程序。
我如何管理程序以获得设置 qdisc 的权限?
我知道我可以运行它,sudo
但这不是我的选择。是否有任何配置文件limits.conf
可以授予特定用户的权限?
我有一个使用 Libnl 并尝试通过 netlink 套接字设置一些 qdisc 的程序。
我如何管理程序以获得设置 qdisc 的权限?
我知道我可以运行它,sudo
但这不是我的选择。是否有任何配置文件limits.conf
可以授予特定用户的权限?
在广泛搜索并查看手册页之后,这似乎是不可能的。
Qdiscs 由以下类型的套接字(AF_NETLINK)控制。Qdiscs 使用 netlink 套接字与内核通信。例如,如果您使用 socket(RAW) 打开一个套接字,您可以将 linux“功能”CAP_NET_RAW 设置为您希望能够使用原始套接字的用户。
如果您阅读 netlink 手册页,您会发现它们需要 CAP_NET_ADMIN 进行其他类型的操作,但如果您使用具有此功能的“setcap”命令,然后尝试以该用户身份操作 Qdisc,它似乎不起作用。
如果有人知道更好的方法(包括 linux 内核的补丁),请发布。