gpt4 book ai didi

在没有 root 权限的情况下更改 Linux 中的网络设置

转载 作者:可可西里 更新时间:2023-11-01 11:49:02 24 4
gpt4 key购买 nike

我所说的设置是 IP、子网掩码和默认网关(设置和获取)。为了设置所有这些,我使用 ioctl 函数以及 SIOCSIFADDRSIOCSIFNETMASK 等选项。为了获取 IP 和掩码,我使用了相同的方法,但使用了诸如 SIOCGIFADDR 之类的选项。为了获取默认网关,我解析了文件 /proc/net/route 并读取接口(interface)对应的默认网关地址。

这一切工作完美,但具有 root 权限。有没有什么方法可以在不给 root 用户的情况下更改这些设置?这是我无法解决的要求。更改所有权,如 this问题可以通过将代码放在一个单独的可执行文件中并将该可执行文件的所有权更改为 root 然后从主应用程序调用它来解决问题。

我只想知道是否可以在不授予应用程序根访问权限的情况下更改此类设置。

最佳答案

我知道有两种方法:

  1. 使用 sudo以 root 身份运行 ifconfig 和路由。 Sudo 可以设置为无需密码即可工作,并且仅适用于某些程序。

  2. 使用 capabilities查看 Is there a way for non-root processes to bind to "privileged" ports on Linux? 的答案并使用 CAP_NET_ADMIN 代替 cap_net_bind_service。

关于在没有 root 权限的情况下更改 Linux 中的网络设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28559322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com