与普通用户一样,以编程方式更改Mac网络设置所需的权限

时间:2013-09-20 18:05:29

标签: c macos networking

是否有特殊的组或功能(类似于Linux的“CAP_NET_xxx”)可以让用户在Mac OS X上以编程方式更改网络设置?我感兴趣的设置是接口的IP地址和网络掩码,从C程序以编程方式设置(通过ioctl调用,发送ifreq结构)。我目前使用的用户类型是我的Mac笔记本电脑上的股票“管理员”帐户。最后,我希望我的程序能够将用户添加到一个方便的组中,以便在后续运行中用户可以在不提示的情况下操作接口的IP地址。

由于

2 个答案:

答案 0 :(得分:1)

Mac OS X几乎需要root权限才能更改任何网络设置。您需要以root运行程序才能更改设置。正如@edufinn所提到的,sudo命令对此非常理想。

但是,如果要以受支持的方式更改配置,则应尝试以下方法之一:

通过这些API更改配置将通知应用程序网络配置已更改,以便他们能够做出适当的反应 - 例如建立/重置连接。

答案 1 :(得分:0)

Mac OS X是BSD系统。您可以使用sudo命令运行程序。从你的帖子中发现什么是一个问题并不是很明显?