2011-08-19 26 views
5

पर पाइथन सीएलआई अनुप्रयोग की सेवा कैसे करें I Urwid फ्रंट एंड के साथ एक एप्लिकेशन लिखने की प्रक्रिया में है और पाइथन में एक मोंगोडीबी बैक एंड है। अंतिम लक्ष्य एसएसएच पर आवेदन करने में सक्षम होने में सक्षम होना है। आवेदन की अपनी प्रमाणीकरण/पहचान प्रणाली है। मैं प्रत्येक उपयोगकर्ता के लिए एक नई प्रक्रिया शुरू करने के ऊपरी हिस्से के बारे में चिंतित नहीं हूं, समवर्ती उपयोगकर्ताओं की अपेक्षित संख्या कम है। चूंकि ग्राहक किसी भी राज्य की जानकारी को याद नहीं करता है और इसके बजाय यह सब डीबी में संग्रहीत है, इसलिए मैं प्रमाणीकरण उद्देश्यों को छोड़कर सत्रों के बारे में चिंतित नहीं हूं।एसएसएच

मैं सोच रहा था कि आवेदन करने के लिए कोई तरीका है जैसे कि अपना सॉकेट-सर्वर कोड रोल किए बिना या ट्विस्ट का उपयोग करके ऐप को दोबारा कोड करें। मैं ईमानदारी से नहीं जानता कि कैसे उरविद और मुड़कर एक साथ खेलते हैं। मैं देखता हूं कि Urwid में एक TwistedEventLoop विधि है जो घुमावदार रिएक्टर का उपयोग करने के लिए purports है, लेकिन मुझे एक मुड़ कनेक्शन पर एक Urwid आवेदन चलाने के लिए कोई उदाहरण कोड नहीं मिल रहा है। उदाहरणों की सराहना की जाएगी, यहां तक ​​कि सरल भी। मैंने ज़ीरोएमक्यू को भी देखा है लेकिन यह मुड़ने से भी ज्यादा अचूक लगता है। संक्षेप में मैंने कई अलग-अलग पुस्तकालयों की खोज की जो टीसीपी पर आवेदन करने के लिए अधिकृत हैं, जिनमें से अधिकांश टेलनेट द्वारा हैं। और लगभग सभी http पर ध्यान केंद्रित करते हैं।

सबसे खराब स्थिति परिदृश्य मैं उम्मीद करता हूं कि मैं एक वैश्विक लॉगिन के रूप में एक बेहद बंद उपयोगकर्ता बना सकता हूं और एसएसएच सत्रों का उपयोग कर सकता हूं। इस तरह प्रत्येक उपयोगकर्ता को अपना खुद का क्रोट/प्रक्रिया/क्लाइंट मिलता है। हाँ, मुझे पता है कि शायद यह "बहुत बुरा विचार (टीएम)" है। लेकिन मुझे इसे एक संभावना के रूप में बाहर फेंकना पड़ा।

मैं किसी भी रचनात्मक प्रतिक्रिया की सराहना करता हूं। अपमान, चिंताओं और अहंकार को दबाया जाएगा, मुद्रित किया जाएगा और थूक जाएगा।

-ch

उत्तर

1

के बाद से अनुप्रयोग की अपनी प्रमाणन करता है, तो आप सिर्फ यह xinetd के माध्यम से डंप और उस संभाल आई/ओ दे सकते हैं। फिर उपयोगकर्ता उपयुक्त बंदरगाह पर टेलनेट कर सकते हैं और इसे काम कर सकते हैं।

+0

दिलचस्प लगता है। मैंने उसमें देखा, स्टनल एक एसएसएल रैपर प्रदान कर सकता है और xinetd कनेक्शन को संभाल सकता है। हममम। धन्यवाद। – TehCorwiz

+0

यह एक उचित और कम प्रयास करने का तरीका हो सकता है: हालांकि, कृपया ध्यान दें कि "एसएसएल" और "एसएसएच" एक ही प्रोटोकॉल नहीं हैं। – Glyph

4

ट्विस्ट की इस तरह की चीज को लिखने के लिए एक परत है: twisted.conch.insults। मैं सावधान रहना चाहता हूं कि इसे ओवरलैल न करें; इसे अभी भी अधिक दस्तावेज की आवश्यकता है और कुछ सुविधाओं की कमी है। जैसा कि डॉक्टरिंग कहता है, यह 'इस समय बहुत बुनियादी है'।

अपमान एक कारण के लिए आया था। मेरी समझ यह है कि उर्फिड, यहां तक ​​कि अपने ट्विस्ट मोड में, सीधे फाइल डिस्क्रिप्टर से बात कर रहा है, और इसलिए उसके आउटपुट को एन्क्रिप्टेड और उसी थ्रेड द्वारा ट्रांसपोर्ट नहीं किया जा सकता है; किसी को उस फ़ाइल डिस्क्रिप्टर के दूसरे छोर को पढ़ने की जरूरत है। मेरा मानना ​​है कि ट्विस्ट मोड Urwid का उपयोग कर कंसोल एप्लिकेशन रखने के बारे में अधिक है जो अन्य सामान के लिए ट्विस्ट नेटवर्किंग का उपयोग करता है; क्योंकि आप क्लाइंट एप्लिकेशन में या कंसोल व्यू वाले सर्वर में होना चाहते हैं।

यदि आपको प्रति कनेक्शन एक प्रक्रिया को कोई फर्क नहीं पड़ता है, तो आप कॉन्च का उपयोग करके एक एसएसएच सर्वर लिखने में सक्षम हो सकते हैं जो आपके यूआरविड प्रोग्राम को एक प्राइवेटिस के रूप में एक पीटीवी का उपयोग करके स्पॉन्स करता है, इसके प्रमाणीकरण और पर्यावरण के बारे में जानकारी के साथ, उदाहरण के लिए, पर्यावरण चर के माध्यम से। spawnProcess API और जीन-पॉल कैल्डरोन की excellent series on using Conch देखें।

0

एक सस्ता और सकारात्मक रूप से बहुत खतरनाक हैक आपके ऐप को किसी विशेष उपयोगकर्ता के लिए डिफ़ॉल्ट खोल के रूप में रखना है। हालांकि आपको बहुत सावधान रहने की आवश्यकता है (सुझाव इसे नरक और पीठ में घुमाएं) क्योंकि ऐप से और सर्वर में तोड़ना संभव हो सकता है।