3

我有一个使用 Libnl 并尝试通过 netlink 套接字设置一些 qdisc 的程序。

我如何管理程序以获得设置 qdisc 的权限?

我知道我可以运行它,sudo但这不是我的选择。是否有任何配置文件limits.conf可以授予特定用户的权限?

4

1 回答 1

4

在广泛搜索并查看手册页之后,这似乎是不可能的。

Qdiscs 由以下类型的套接字(AF_NETLINK)控制。Qdiscs 使用 netlink 套接字与内核通信。例如,如果您使用 socket(RAW) 打开一个套接字,您可以将 linux“功能”CAP_NET_RAW 设置为您希望能够使用原始套接字的用户。

如果您阅读 netlink 手册页,您会发现它们需要 CAP_NET_ADMIN 进行其他类型的操作,但如果您使用具有此功能的“setcap”命令,然后尝试以该用户身份操作 Qdisc,它似乎不起作用。

如果有人知道更好的方法(包括 linux 内核的补丁),请发布。

于 2013-06-14T18:57:30.613 回答