Config फाइल '/ dev / fd / 63' खोलने में विफल, त्रुटि: wpa_supplicant के लिए ऐसी कोई फ़ाइल या निर्देशिका नहीं


12

जब मैं ऐसा करता हूं:

sudo wpa_supplicant -D nl80211,wext -i wlp4s0 -c <(wpa_passphrase "some ssid" "password")

मुझे मिला

Successfully initialized wpa_supplicant
Failed to open config file '/dev/fd/63', error: No such file or directory
Failed to read or parse configuration '/dev/fd/63'

कोई विचार?

जवाबों:


14

आर्कलिनक्स विकी का उद्धरण :

नोट: प्रक्रिया प्रतिस्थापन के कारण, आप इस कमांड को sudo के साथ नहीं चला सकते हैं - आपको रूट शेल की आवश्यकता होगी।

आप का उपयोग करने के लिए सक्षम होना चाहिए su -cके तहत sudoइतना की तरह:

$ sudo su -c 'wpa_supplicant -D nl80211,wext -i wlp4s0 -c \
    <(wpa_passphrase "some ssid" "password")'

11

प्रक्रिया प्रतिस्थापन <(…) एक पाइप बनाता है, /dev/fdएक पथ देने के लिए उपयोग करता है जो फ़ाइल डिस्क्रिप्टर के समान है जहां पाइप है, और प्रोग्राम में एक तर्क के रूप में फ़ाइल नाम पास करता है। यहाँ कार्यक्रम है sudo, और यह उस तर्क को पारित करता है (जो सिर्फ एक स्ट्रिंग है, जहां तक ​​यह चिंतित है) wpa_supplicant, जो इसे एक फ़ाइल नाम के रूप में मानता है।

समस्या यह है कि sudo मानक वाले (stdin = 0, stdout = 1 और stderr = 2) को छोड़कर सभी फ़ाइल डिस्क्रिप्टर को बंद कर देता है। प्रक्रिया प्रतिस्थापन का पाइप दूसरे विवरणक पर होता है, जो बंद हो जाता है, इसलिए जब wpa_supplicantइसे खोलने की कोशिश की जाती है, तो यह एक ऐसी फ़ाइल पाता है जो मौजूद नहीं है।

यदि आपकी sudo नीति इसे अनुमति देती है ( closefrom_overrideविकल्प सक्षम), तो आप इसे फाइल डिस्क्रिप्टर को बंद नहीं करने के लिए कह सकते हैं। लेकिन आमतौर पर ऐसा नहीं होता है।

sudo -C 64 wpa_supplicant  -c <(wpa_passphrase …)

वैकल्पिक रूप से, चूंकि आप मानक इनपुट का उपयोग नहीं कर रहे हैं, इसलिए वहां डेटा पास करें।

wpa_passphrase  | sudo wpa_supplicant  -c /dev/stdin

वैकल्पिक रूप से, सुडो से एक शेल चलाएं और वहां प्रक्रिया प्रतिस्थापन डालें। यदि कमांड में विशेष वर्ण हैं, तो उद्धरण के साथ ध्यान रखें।

sudo bash -c 'wpa_supplication … -c <(wpa_passphrase …)'

1

वेब सर्च इंजन से आने वालों के लिए: सुनिश्चित करें कि आपका /devमाउंट किया गया है। क्रॉचिंग करते समय करने के लिए एक आसान गलती, जिसके परिणामस्वरूप इस तरह की त्रुटियां हो सकती हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.