【发布时间】:2012-12-12 08:44:05
【问题描述】:
我有一个程序使用 Libnl 并尝试通过 netlink 套接字设置一些 qdisc。
如何管理程序以获得设置 qdisc 的权限?
我知道我可以使用sudo 运行它,但这不是我的选择。
有没有像limits.conf 这样的配置文件来授予特定用户的权限?
【问题讨论】:
标签: linux privileges netlink
我有一个程序使用 Libnl 并尝试通过 netlink 套接字设置一些 qdisc。
如何管理程序以获得设置 qdisc 的权限?
我知道我可以使用sudo 运行它,但这不是我的选择。
有没有像limits.conf 这样的配置文件来授予特定用户的权限?
【问题讨论】:
标签: linux privileges netlink
经过大量谷歌搜索并查看手册页,这似乎是不可能的。
Qdisc 由以下类型的套接字(AF_NETLINK)控制。 Qdiscs 使用 netlink 套接字与内核通信。例如,如果您使用 socket(RAW) 打开一个套接字,您可以将 linux“功能”CAP_NET_RAW 设置为您希望能够使用原始套接字的用户。
如果您阅读 netlink 手册页,您会看到其他类型的操作需要 CAP_NET_ADMIN,但如果您使用具有此功能的“setcap”命令,然后尝试以该用户身份操作 Qdisc,它不会出现上班。
如果有人知道更好的方法(包括 linux 内核的补丁),请发帖。
【讨论】: