授予用户使用Netlink套接字设置qdisc的特权

4

我有一个使用Libnl的程序,试图通过netlink sockets设置一些qdisc。

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

我知道我可以用sudo运行它,但这对我来说不是一个选项。 是否有像limits.conf这样的配置文件,可以授予特定用户的权限?

1个回答

4
经过大量的谷歌搜索和查看手册,这似乎是不可能的。
Qdiscs被以下类型的socket(AF_NETLINK)控制。Qdiscs使用netlink sockets与内核通信。例如,如果您使用socket(RAW)打开一个套接字,则需要将linux的“capability”CAP_NET_RAW设置为您要能够使用原始套接字的用户。
如果您阅读netlink手册,您会发现其他类型的操作需要CAP_NET_ADMIN,但如果您使用此功能的“setcap”命令,然后尝试以该用户身份操纵Qdisc,似乎不起作用。
如果有人知道更好的方法(包括对Linux内核的补丁),请发布。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接