क्या रूट अनुमति के बिना मौजूदा वायरलेस एसएसआईडी प्राप्त करने का कोई तरीका है?लिनक्स: रूट अनुमति के बिना वायरलेस एसएसआईडी कैसे प्राप्त करें?
iwconfig मुझे ईएसएसआईडी बताता है, लेकिन केवल अगर मैं इसे रूट के रूप में चलाता हूं।
क्या रूट अनुमति के बिना मौजूदा वायरलेस एसएसआईडी प्राप्त करने का कोई तरीका है?लिनक्स: रूट अनुमति के बिना वायरलेस एसएसआईडी कैसे प्राप्त करें?
iwconfig मुझे ईएसएसआईडी बताता है, लेकिन केवल अगर मैं इसे रूट के रूप में चलाता हूं।
आप iwconfig
(wireless_tools) के स्रोत कोड पर एक नज़र डालें, तो आप इस लाइन देखेंगे:
iwconfig.c:639: if(iw_get_ext(skfd, ifname, SIOCGIWESSID, &wrq) < 0)
इस लाइन ESSID की बात (wireless.h) के लिए जिम्मेदार है। और मुझे लगता है कि केवल रूट को ऐसा करने के लिए अनुमति (बॉक्स से बाहर) है, इसलिए iw_get_ext
(iwlib.h
में wireless_tools
पैकेज से परिभाषित किया गया है) जो ioctl
पर कॉल करता है EPERM
(Operation not permitted
) वापस करेगा।
sudo chmod u+s /sbin/iwconfig
तुम भी साथ कुछ हैकिंग करने की कोशिश कर सकते हैं:
setuid
का उपयोग उपयोगकर्ता iwconfig
आदेश का उपयोग करने की अनुमति:
/*------------------------------------------------------------------*/
/*
* Wrapper to extract some Wireless Parameter out of the driver
*/
static inline int
iw_get_ext(int skfd, /* Socket to the kernel */
const char * ifname, /* Device name */
int request, /* WE ID */
struct iwreq * pwrq) /* Fixed part of the request */
{
/* Set device name */
strncpy(pwrq->ifr_name, ifname, IFNAMSIZ);
/* Do the request */
return(ioctl(skfd, request, pwrq));
}
आप 2 समाधान है CAP_NET_ADMIN
क्षमता जो कुछ विशिष्ट क्षमताओं को किसी विशिष्ट उपयोगकर्ता को अनुमति देती है। CAP_NET_ADMIN
के बारे में ये कुछ लिंक:
http://packetlife.net/blog/2010/mar/19/sniffing-wireshark-non-root-user/
http://www.lids.org/lids-howto/node48.html
http://lwn.net/Articles/430462/
अंत में आप strace
उपयोग कर सकते हैं सभी सिस्टम कॉल ट्रेस करने के लिए और ioctl
कॉल है कि पुष्टि करने के लिए क्या आप वहां मौजूद हैं इस के लिए जिम्मेदार:
रूप root
ऐसा करते हैं:
#strace /sbin/iwconfig your_interface_name > strace_iwconfig_root.log
और सामान्य उपयोगकर्ता के रूप में ही:
$strace /sbin/iwconfig your_interface_name > strace_iwconfig_normal.log
और परिणामों की तुलना।
ग्रेट! chmod u + s या CAP_NET_ADMIN और CAP_NET_ADMIN दोनों के साथ कुछ भी बहुत अच्छा काम करते हैं। आपका बहुत बहुत धन्यवाद! – npcode
@npcode: ठीक है धन्यवाद, आपका स्वागत है। – TOC
यदि आप सिस्टम पर 'नेटवर्क-मैनेजर' स्थापित हैं तो आप इस तरह के आसपास हो सकते हैं। फिर आप (संस्करण के आधार पर) 'एनएम-टूल' या' एनएमटीसीएल 'का उपयोग कर सकते हैं। मेरी भौगोलिक स्थान पुस्तकालय में उदाहरण कोड है, देखें: https://github.com/privatwolke/geolocation –
यदि आप इसे नियमित उपयोगकर्ता के रूप में चलाते हैं तो क्या होता है? आप किस लिनक्स वितरण का उपयोग करते हैं? साथ ही, आप [unix.se] ऐसे प्रश्नों के लिए एक और उपयुक्त साइट पा सकते हैं। –