से जुड़ने से इंकार कर दिया गया है लिनक्स मशीन पर उपयोगकर्ता मोड [गैर रूट] में, मैं ioctl(iInterfaceSocket, SIOCSIFADDR, &stCommand)
का उपयोग कर सॉकेट बांधने की कोशिश कर रहा हूं। मुझे error 13 -> Permission denied because of user mode
मिल रहा है। अगर उपयोगकर्ता से कर्नेल मोड में परिवर्तन सब कुछ ठीक काम करता है।उपयोगकर्ता मोड अनुमति सॉकेट
मुझे केवल उपयोगकर्ता मोड में सॉकेट को बांधना होगा। ऊपर की समस्या को समझाने के दौरान कृपया समाधान का सुझाव दें। अगर मुझे कोई जानकारी याद आती है तो कृपया मुझे बताएं और मैं और जानकारी प्रदान करूंगा।
'बाइंड()' के साथ क्या गलत है? – Erik
@ user736403 - आप क्या हासिल करने की कोशिश कर रहे हैं? 'SIOCSIFADDR' सॉकेट बाध्य नहीं करता है, 'बाध्य()' करता है। 'SIOCSIFADDR' मशीन के नेटवर्क इंटरफ़ेस का पता सेट करता है। –
बस एक छोटा नाइटपिक: रूट के रूप में प्रोग्राम चलाने से कर्नेल मोड में चलने से बहुत अलग है। रूट के रूप में चलने वाले प्रोग्राम अभी भी उपयोगकर्ता मोड में चलते हैं; वे सिर्फ ऊंचे विशेषाधिकार हैं। जब वे 'ioctl' जैसे सिस्टम कॉल करते हैं तो सभी प्रक्रियाओं (रूट या नहीं) उपयोगकर्ता और कर्नेल मोड के बीच स्विच करते हैं। –