非root用户访问ioctl以进行WIFI扫描

时间:2012-07-17 05:56:42

标签: linux kernel root wireless ioctl

我正在努力实现iwlist python版本。以下是iwlist如何在Linux操作系统How does iwlist() command scans the wireless networks?上运行的描述,它的作用是扫描所有附近的WiFi接入点,显示其ESSID,MAC地址,信号/噪声级别等列表。

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

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

1 个答案:

答案 0 :(得分:0)

我猜你也不想出于安全原因使用setuid。您可能希望尝试使用capability系统,并在二进制文件中使用set所需的功能。我不确切知道您需要哪种功能,可能是 CAP_NET _ *或 CAP_SYS _ *功能之一。