Is there any way to get current wireless SSID without root permission?
iwconfig tells me ESSID, but only if I run it as root.
Is there any way to get current wireless SSID without root permission?
iwconfig tells me ESSID, but only if I run it as root.
Copyright © 2021 Jogjafile Inc.
If you take a look at the source code of the
iwconfig
(wireless_tools), you'll see this line:This line is responsible for the get of ESSID (wireless.h). And i think that only root have permissions (out of the box) to do this, so the function
iw_get_ext
(defined iniwlib.h
fromwireless_tools
package) which callioctl
will returnEPERM
(Operation not permitted
).You have 2 solutions:
Use the
setuid
to allow the user to useiwconfig
command:sudo chmod u+s /sbin/iwconfig
You can also try to do some hacking with the
CAP_NET_ADMIN
capability which allow some specific capabilities to a specific user. Here some links aboutCAP_NET_ADMIN
:http://packetlife.net/blog/2010/mar/19/sniffing-wireshark-non-root-user/
http://peternixon.net/news/2012/01/28/configure-tcpdump-work-non-root-user-opensuse-using-file-system-capabilities/
http://www.lids.org/lids-howto/node48.html
http://lwn.net/Articles/430462/
Finally you can use
strace
to trace all system calls and to confirm thatioctl
call is the responsible for this:as
root
do this:And the same as normal user:
And compare the results.