0

我正在实现 iwlist python 版本。这是 iwlist 在 Linux 操作系统上如何工作的描述 iwlist() 命令如何扫描无线网络?它的作用是扫描所有附近的 wifi 接入点,显示它们的 ESSID、MAC 地址、信号/噪声级别等列表。

iwlist 使用 ioctl SIOCSIWSCAN 来触发扫描。然后它使用 SIOCGIWSCAN 来获取扫描结果。出于安全原因,我必须在没有 root 访问权限的情况下实现这一点。但这两个命令都必须以 root 身份运行。python 等效的 iwlist 已经实现http://pythonwifi.wikispot.org/但是它使用相同的 ioctl。

我想知道是否可以在没有 sudo 的情况下解决这个问题。或者,除了 ioctl,如果还有其他方法可以实现非 sudo iwlist。

4

1 回答 1

0

我猜您出于安全原因也不想使用 setuid 。您可能想尝试使用功能系统并在您的二进制文件上设置所需的功能。我不确切知道您需要哪种功能,可能是CAP_NET_ * 或CAP_SYS_ * 功能之一。

于 2012-07-17T07:16:18.683 回答