我如何允许用户在没有 sudo 的情况下更改网络设备设置(启动/关闭、模式)?

我如何允许用户在没有 sudo 的情况下更改网络设备设置(启动/关闭、模式)?

我正在编写一个使用网络设备 (CANbus) 的应用程序。在 Linux 中,CAN 像任何其他网络设备一样可见(例如 eth0)。我的应用程序需要能够设置网络设备,将它们置于 UP/Down 状态等。

不幸的是,当我的应用程序尝试这样做(通过 API)时,我得到了: RTNETLINK answers: Operation not permitted

当我以 root 身份运行我的应用程序时,它按预期工作。但我肯定不想以 root 身份运行它。由于网络设备没有代表/dev/(自几年前以来),我甚至不知道从哪里开始。

据我检查,netdev 是一组有权执行此类操作的用户,但对我来说它不起作用。

换句话说,可以通过两种方式获取收益:

  • 通过进程获取更高的权限(sudo例如)
  • 通过降低项目的强制权限(例如文件)

我期望的是降低特定网络设备的强制权限的方法。

相关内容